02 Numbersystems
02 Numbersystems
Representation
1
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
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
3
Positional Number Systems (General)
Decimal Numbers:
10 Symbols {0,1,2,3,4,5,6,7,8,9}, Base or Radix is 10
136.25 = 1 102 + 3 101 + 6 100 + 2 10–1 + 3 10–2
4
Positional Number Systems (General)
Decimal Numbers:
10 Symbols {0,1,2,3,4,5,6,7,8,9}, Base or Radix is 10
136.25 = 1 102 + 3 101 + 6 100 + 2 10–1 + 3 10–2
Binary Numbers:
2 Symbols {0,1}, Base or Radix is 2
101.01 = 1 22 + 0 21 + 1 20 + 0 2–1 + 1 2–2
5
Positional Number Systems (General)
Decimal Numbers:
10 Symbols {0,1,2,3,4,5,6,7,8,9}, Base or Radix is 10
136.25 = 1 102 + 3 101 + 6 100 + 2 10–1 + 5 10–2
Binary Numbers:
2 Symbols {0,1}, Base or Radix is 2
101.01 = 1 22 + 0 21 + 1 20 + 0 2–1 + 1 2–2
Octal Numbers:
8 Symbols {0,1,2,3,4,5,6,7}, Base or Radix is 8
621.03 = 6 82 + 2 81 + 1 80 + 0 8–1 + 3 8–2
6
Positional Number Systems (General)
Decimal Numbers:
10 Symbols {0,1,2,3,4,5,6,7,8,9}, Base or Radix is 10
136.25 = 1 102 + 3 101 + 6 100 + 2 10–1 + 3 10–2
Binary Numbers:
2 Symbols {0,1}, Base or Radix is 2
101.01 = 1 22 + 0 21 + 1 20 + 0 2–1 + 1 2–2
Octal Numbers:
8 Symbols {0,1,2,3,4,5,6,7}, Base or Radix is 8
621.03 = 6 82 + 2 81 + 1 80 + 0 8–1 + 3 8–2
Hexadecimal Numbers:
16 Symbols {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, Base is 16
6AF.3C = 6 162 + 10 161 + 15 160 + 3 16–1 + 12 16–2
7
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 value in decimal:
D= bi 2 i
n-1
i = -m
8
Examples
101011 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 1x20
= 43
(101011)2 = (43)10
(101.11)2 = (5.75)10
9
Decimal to Binary: Integer Part
Consider the integer and fractional parts separately.
For the integer part:
Base NumbRem
2 89
2 44 1
2 22 0
2 11 0
2 5 1
2 2 1
2 1 0
0 1
(89)10 = (1011001)2
10
Decimal to Binary: Integer Part
Consider the integer and fractional parts separately.
For the integer part:
Base NumbRem
2 66
2 89 2 33 0
2 44 1 2 16 1
2 22 0 2 8 0
2 11 0 2 4 0
2 5 1 2 2 0
2 2 1 2 1 0
2 1 0 0 1
0 1
(66)10 = (1000010)2
(89)10 = (1011001)2
11
Decimal to Binary: Integer Part
Consider the integer and fractional parts separately.
For the integer part:
Example: 0.634
.634 x 2 = 1.268
.268 x 2 = 0.536
.536 x 2 = 1.072
.072 x 2 = 0.144
.144 x 2 = 0.288
:
:
(.634)10 = (.10100……)2
13
Decimal to Binary: Fraction Part
Repeatedly multiply the given fraction by 2.
Accumulate the integer part (0 or 1).
If the integer part is 1, chop it off.
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
16
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
17
Example
1. (1011 0100 0011)2 = (B43)16
18
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
19
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)
20
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?
21
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
22
Contd.
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
23
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
24
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, say, -4, first note that
+4 = 0100
-4 = 1’s complement of 0100 = 1011 25
Contd.
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
26
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
27
Example : n=4 1000 -8
0000 +0 1001 -7
0001 +1 1010 -6
0010 +2 1011 -5
0011 +3 1100 -4
0100 +4 1101 -3
0101 +5 1110 -2
0110 +6 1111 -1
0111 +7
To find the representation of, say, -4, first note that
+4 = 0100
-4 = 2’s complement of 0100 = 1011+1 = 1100
Rule : Value = – msb*2(n–1) + [unsigned value of rest]
Example: 0110 = 0 + 6 = 6 1110 = – 8 + 6 = – 2 28
Contd.
Range of numbers that can be represented:
Maximum :: + (2n-1 – 1)
Minimum :: 2n-1
Advantage:
Unique representation of zero
Subtraction can be done using addition
Leads to substantial saving in circuitry
Almost all computers today use the 2’s complement
representation for storing negative numbers
29
Contd.
In C
short int
16 bits + (215-1) to -215
int or long int
32 bits + (231-1) to -231
long long int
64 bits + (263-1) to -263
30
Adding Binary Numbers
Basic Rules: Example:
0+0=0
0+1=1 01101001
1+0=1 00110100
1+1=0 (carry 1) -------------
10011101
31
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
Else
The result is negative, and is in 1’s complement form
32
Example 1 :: 6 – 2
1’s complement of 2 = 1101
Assume 4-bit
6 :: 0110 A representations
-2 :: 1101 B1 Since there is a carry, it is
1 0011 R added back to the result
1 The result is positive
0100 +4
End-around
carry
33
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
1101 is the 1’s complement of
0010, that is, it represents –2
-2
34
Subtraction Using Addition :: 2’s
Complement
How to compute A – B ?
Compute the 2’s complement of B (say, B2)
Compute R = A + B2
If the carry obtained after addition is ‘1’
Ignore the carry
The result is a positive number
Else
The result is negative, and is in 2’s complement form
35
Example 1 :: 6 – 2
2’s complement of 2 = 1101 + 1 = 1110
36
Example 2 :: 3 – 5
2’s complement of 5 = 1010 + 1 = 1011
3 :: 0011 A
-5 :: 1011 B2 Assume 4-bit representations
37
2’s complement arithmetic: More
Examples
Example 1: 18-11 = ?
18 is represented as 00010010
11 is represented as 00001011
1’s complement of 11 is 11110100
2’s complement of 11 is 11110101
Add 18 to 2’s complement of 11
00010010
+ 11110101 00000111 is 7
----------------
00000111 (with a carry of 1
which is ignored) 38
Example 2: 7 - 9 = ?
7 is represented as 00000111
9 is represented as 00001001
1’s complement of 9 is 11110110
2’s complement of 9 is 11110111
Add 7 to 2’s complement of 9
00000111
+ 11110111 11111110 is -2
----------------
11111110 (with a carry of 0
which is ignored) 39
Overflow/Underflow:
Adding two +ve (-ve) numbers should not produce a
–ve (+ve) number. If it does, overflow (underflow) occurs
40
Overflow/Underflow:
Adding two +ve (-ve) numbers should not produce a
–ve (+ve) number. If it does, overflow (underflow) occurs
41
Overflow/Underflow:
Adding two +ve (-ve) numbers should not produce a
–ve (+ve) number. If it does, overflow (underflow) occurs
(64) 01000000
( 4) 00000100
--------------
(68) 01000100
carry (out)(in)
0 0
42
Overflow/Underflow:
Adding two +ve (-ve) numbers should not produce a
–ve (+ve) number. If it does, overflow (underflow) occurs
M mantissa
E exponent
45
Example :: 32-bit representation
M E
24 8
M represents a 2’s complement fraction
1 > M > -1
E represents the exponent (in 2’s complement form)
127 > E > -128
Points to note:
The number of significant digits depends on the
number of bits in M
6 significant digits for 24-bit mantissa
47
IEEE 754 Floating-Point Format
(Single Precision)
S E (Exponent) M (Mantissa)
(31) (30 … 23) (22 … 0)
1 10001100 11011000000000000000000
49
Representing 0.3
S E (Exponent) M (Mantissa)
(31) (30 … 23) (22 … 0)
0.3 (decimal)
= 0.0100100100100100100100100…
= 1.00100100100100100100100100… 2 2
= 1.00100100100100100100100100… 2 125 127
= (-1)S (1.0 + 0.M) 2(E – 127)
0 01111101 00100100100100100100100
0 00000000 00000000000000000000000
1 00000000 00000000000000000000000
1 11111111 00000000000000000000000
UNICODE
Used to represent all international characters.
Used by Java
52
ASCII Code
Each individual character is numerically encoded into a unique 7-
bit binary code
A total of 27 or 128 different characters
A character is normally encoded in a byte (8 bits), with the MSB
not been used.
The binary encoding of the characters follow a regular ordering
Digits
are ordered consecutively in their proper numerical
sequence (0 to 9)
Letters (uppercase and lowercase) are arranged consecutively
in their proper alphabetic order
53
Some Common ASCII Codes
‘A’ :: 41 (H) 65 (D) ‘0’ :: 30 (H) 48 (D)
‘B’ :: 42 (H) 66 (D) ‘1’ :: 31 (H) 49 (D)
……….. ………..
‘Z’ :: 5A (H) 90 (D) ‘9’ :: 39 (H) 57 (D)
55
String Representation in C
In C, the second approach is used
The ‘\0’ character is used as the string delimiter
Example:
“Hello” H e l l o ‘\0’
56