Number System :: The Basics
• We are accustomed to using the so-called
decimal number system.
– Ten digits :: 0,1,2,3,4,5,6,7,8,9
– Every digit position has a weight which is a power of
10.
– Base or radix is 10.
• Example:
234 = 2 x 102 + 3 x 101 + 4 x 100
250.67 = 2 x 102 + 5 x 101 + 0 x 100 +
6 x 10-1 + 7 x 10-2
Binary Number System
• Two digits:
– 0 and 1.
– Every digit position has a weight which is a
power of 2.
– Base or radix is 2.
• Example:
110 = 1 x 22 + 1 x 21 + 0 x 20
101.01 = 1 x 22 + 0 x 21 + 1 x 20 +
0 x 2-1 + 1 x 2-2
Counting with Binary Numbers
0
1
10
11
100
101
110
111
1000
.
Multiplication and Division with base
Multiplication with 10 (decimal system)
435 x 10 = 4350 Left Shift and add
zero at right end
Multiplication with 10 (=2 ) (binary system)
1101 x 10 = 11010
Right shift and drop
right most digit or
Division by 10 (decimal system) shift after decimal
435 / 10 = 43.5 point
Division by 10 (=2) (binary system)
1101 / 10 = 110.1
Adding two bits
Carries
0 +0 = 0
1 1 1 0
0 +1 = 1 1 0 1 1
1 +0 = 1 + 1 1 1 0
1 +1 = 10 1 1 0 0 1
carry
Binary addition: Another example
The initial carry
in is implicitly 0
1 1 0 0 (Carries)
1 1 0 1
+ 1 1 0 0
1 1 0 0 1 (Sum)
most significant least significant
bit (MSB) bit (LSB)
Binary-to-Decimal Conversion
• Each digit position of a binary number has a
weight.
– Some power of 2.
• A binary number:
B = bn-1 bn-2 …..b1 b0 . b-1 b-2 ….. b-m
Corresponding
n-1
value in decimal:
D = bi 2i
i = -m
Examples
1. 101011 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 1x20
= 43
(101011)2 = (43)10
2. .0101 0x2-1 + 1x2-2 + 0x2-3 + 1x2-4
= .3125
(.0101)2 = (.3125)10
3. 101.11 1x22 + 0x21 + 1x20 + 1x2-1 + 1x2-2
5.75
(101.11)2 = (5.75)10
Decimal-to-Binary Conversion
• Consider the integer and fractional parts
separately.
• For the integer part,
– Repeatedly divide the given number by 2, and go
on accumulating the remainders, until the number
becomes zero.
– Arrange the remainders in reverse order.
• For the fractional part,
– Repeatedly multiply the given fraction by 2.
• Accumulate the integer part (0 or 1).
• If the integer part is 1, chop it off.
– Arrange the integer parts in the order they are
obtained.
Example 1 :: 239
2 239
2 119 --- 1
2 59 --- 1
2 29 --- 1
2 14 --- 1
(239)10 = (11101111)2
2 7 --- 0
2 3 --- 1
2 1 --- 1
2 0 --- 1
Example 2 :: 64
2 64
2 32 --- 0
2 16 --- 0
2 8 --- 0
2 4 --- 0
(64)10 = (1000000)2
2 2 --- 0
2 1 --- 0
2 0 --- 1
Example 3 :: .634
.634 x 2 = 1.268
.268 x 2 = 0.536
.536 x 2 = 1.072
.072 x 2 = 0.144
(.634)10 = (.10100……)2
.144 x 2 = 0.288
:
:
Example 4 :: 37.0625
(37)10 = (100101)2
(.0625)10 = (.0001)2
(37.0625)10 = (100101 . 0001)2
Hexadecimal Number System
• A compact way of representing binary numbers.
• 16 different symbols (radix = 16).
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
Binary-to-Hexadecimal Conversion
• For the integer part,
– Scan the binary number from right to left.
– Translate each group of four bits into the
corresponding hexadecimal digit.
• Add leading zeros if necessary.
• For the fractional part,
– Scan the binary number from left to right.
– Translate each group of four bits into the
corresponding hexadecimal digit.
• Add trailing zeros if necessary.
Example
1. (1011 0100 0011)2 = (B43)16
2. (10 1010 0001)2 = (2A1)16
3. (.1000 010)2 = (.84)16
4. (101 . 0101 111)2 = (5.5E)16
Hexadecimal-to-Binary Conversion
• Translate every hexadecimal digit into its 4-
bit binary equivalent.
• Examples:
(3A5)16 = (0011 1010 0101)2
(12.3D)16 = (0001 0010 . 0011 1101)2
(1.8)16 = (0001 . 1000)2
Unsigned Binary Numbers
• An n-bit binary number
B = bn-1bn-2 …. b2b1b0
• 2n distinct combinations are possible, 0 to 2n-1.
• For example, for n = 3, there are 8 distinct
combinations.
– 000, 001, 010, 011, 100, 101, 110, 111
• Range of numbers that can be represented
n=8 0 to 28-1 (255)
n=16 0 to 216-1 (65535)
n=32 0 to 232-1 (4294967295)
Signed Integer Representation
• Many of the numerical data items that are used in a
program are signed (positive or negative).
– Question:: How to represent sign?
• Three possible approaches:
– Sign-magnitude representation
– One’s complement representation
– Two’s complement representation
Sign-magnitude Representation
• For an n-bit number representation
– The most significant bit (MSB) indicates sign
0 positive
1 negative
– The remaining n-1 bits represent magnitude.
bn-1 bn-2 b1 b0
Sign Magnitude
Representation and ZERO
• Range of numbers that can be represented:
Maximum :: + (2n-1 – 1)
Minimum :: (2n-1 – 1)
• A problem:
Two different representations of zero.
+0 0 000….0
-0 1 000….0
One’s Complement Representation
• Basic idea:
– Positive numbers are represented exactly as in sign-
magnitude form.
– Negative numbers are represented in 1’s complement
form.
• How to compute the 1’s complement of a
number?
– Complement every bit of the number (10 and 01).
– MSB will indicate the sign of the number.
0 positive
1 negative
Example :: n=4
0000 +0 1000 -7
0001 +1 1001 -6
0010 +2 1010 -5
0011 +3 1011 -4
0100 +4 1100 -3
0101 +5 1101 -2
0110 +6 1110 -1
0111 +7 1111 -0
To find the representation of -4, first note that
+4 = 0100
-4 = 1’s complement of 0100 = 1011
One’s Complement Representation
• Range of numbers that can be represented:
Maximum :: + (2n-1 – 1)
Minimum :: (2n-1 – 1)
• A problem:
Two different representations of zero.
+0 0 000….0
-0 1 111….1
• Advantage of 1’s complement representation
– Subtraction can be done using addition.
– Leads to substantial saving in circuitry.
Two’s Complement Representation
• Basic idea:
– Positive numbers are represented exactly as in sign-
magnitude form.
– Negative numbers are represented in 2’s complement
form.
• How to compute the 2’s complement of a
number?
– Complement every bit of the number (10 and 01), and
then add one to the resulting number.
– MSB will indicate the sign of the number.
0 positive
1 negative
Example :: n=4
0000 +0 1000 -8
0001 +1 1001 -7
0010 +2 1010 -6
0011 +3 1011 -5
0100 +4 1100 -4
0101 +5 1101 -3
0110 +6 1110 -2
0111 +7 1111 -1
To find the representation of, say, -4, first note that
+4 = 0100
-4 = 2’s complement of 0100 = 1011+1 = 1100
Subtraction Using Addition :: 1’s
Complement
• How to compute A – B ?
– Compute the 1’s complement of B (say, B1).
– Compute R = A + B1
– If the carry obtained after addition is ‘1’
• Add the carry back to R (called end-around carry).
• That is, R = R + 1.
• The result is a positive number.
Else
• The result is negative, and is in 1’s complement form.
Example 1 :: 6 – 2
A = 6 (0110)
B = 2 (0010)
6–2=A-B
1’s complement of 2 = 1101
6 :: 0110 A
Assume 4-bit
-2 :: 1101 B1 representations.
1 0011 R Since there is a carry, it is
End-around
added back to the result.
carry 1
The result is positive.
0100 +4
Example 2 :: 3 – 5
1’s complement of 5 = 1010
3 :: 0011 A
-5 :: 1010 B1
Assume 4-bit representations.
1101 R
Since there is no carry, the
result is negative.
-2
1101 is the 1’s complement of
0010, that is, it represents –2.
Subtraction Using Addition :: 2’s
Complement
• How to compute A – B ?
– Compute the 2’s complement of B (say, B2).
– Compute R = A + B2
– Ignore carry if it is there.
– The result is in 2’s complement form.
Example 1 :: 6 – 2
2’s complement of 2 = 1101 + 1 = 1110
6 :: 0110 A
-2 :: 1110 B2
1 0100 R
Ignore carry
+4
Example 2 :: 3 – 5
2’s complement of 5 = 1010 + 1 = 1011
3 :: 0011 A
-5 :: 1011 B2
1110 R
-2
Example 3 :: -3 – 5
2’s complement of 3 = 1100 + 1 = 1101
2’s complement of 5 = 1010 + 1 = 1011
-3 :: 1101
-5 :: 1011
1 1000
Ignore carry -8