Integer
Representation
Figure 3-5
Range of integers
Figure 3-6
Taxonomy of integers
Table 3.1 Range of unsigned integers
#---------
of Bits
Range
-------------------------
816
------------
0255
0535
65,
Example 3
Store 7 in an 8-bit memory location.
Solution
First change the number to binary 111. Add
five 0s to make a total of N (8) bits,
00000111. The number is stored in the
memory location.
Example 4
Store 258 in a 16-bit memory location.
Solution
First change the number to binary
100000010. Add seven 0s to make a total of
N (16) bits, 0000000100000010. The
number is stored in the memory location.
Table 3.2 Example of storing unsigned integers in
two different computers
Decimal 8-bit allocation
16-bit allocation
-------- ------------
---------------------
---- 00000111
---------
7
11101010
overflow
0000000000000111
0000000011101010
234
258
overflow
0000000100000010
24,760
overflow
0110000010111000
overflow
1,245,67
8
Example 5
Interpret 00101011 in decimal if the
number was stored as an unsigned
integer.
Solution
Using the procedure shown in
Figure 3.3 , the number in decimal
is 43.
Table 3.3 Range of sign-and-magnitude integers
#--------
of Bits -------------------------------------
Range
--8
127 ------------------
+0
16 0
+127
+0
32767
32
0
+32767
0
+0
+2,147,483,647
Note:
In sign-and-magnitude
representation,
the leftmost bit defines the sign of
the number. If it is 0, the number is
positive.If it is 1, the number is
negative.
Note:
There are two 0s in sign-and-
magnitude
representation: positive and negative.
In an 8-bit allocation:
+0 00000000
-0 10000000
Example 6
Store +7 in an 8-bit memory location
using sign-and-magnitude
representation.
Solution
First change the number to binary 111. Add
four 0s to make a total of N-1 (7) bits,
0000111. Add an extra zero because the
number is positive. The result is:
00000111
Example 7
Store –258 in a 16-bit memory
location using sign-and-magnitude
representation.
Solution
First change the number to binary
100000010. Add six 0s to make a total of N
-1 (15) bits, 000000100000010. Add an
extra 1 because the number is negative.
The result is:
1000000100000010
Table 3.4 Example of storing sign-and-magnitude integ
in two computers
Decimal 8-bit allocation
16-bit allocation
-------- ------------
---------------------
---- 00000111
---------
+7
11111100
overflow
0000000000000111
1000000001111100
-124
+258
overflow
0000000100000010
-24,760
1110000010111000
Example 8
Interpret 10111011 in decimal if the
number was stored as a sign-and-
magnitude integer.
Solution
Ignoring the leftmost bit, the remaining bits
are 0111011. This number in decimal is 59.
The leftmost bit is 1, so the number is –59.
Note:
There are two 0s in one’s complement
representation: positive and negative.
In an 8-bit allocation:
+0 00000000
-0 11111111
One’s complement
• If the sign is positive (0), no more action
is needed;
• If the sign is negative, every bit is
complemented.
Table 3.5 Range of one’s complement integers
#--------
of Bits -------------------------------------
Range
-8
127 ------------------
+0
+127
0
16
32
0
32767 +0
+32767
0
+0
+2,147,483,647
Note:
In one’s complement representation,
the leftmost bit defines the sign of
the number. If it is 0, the number is
positive.If it is 1, the number is
negative.
Example 9
Store +7 in an 8-bit memory location
using one’s complement
representation.
Solution
First change the number to binary 111. Add
five 0s to make a total of N (8) bits,
00000111. The sign is positive, so no more
action is needed. The result is:
00000111
Example 10
Store –258 in a 16-bit memory
location using one’s complement
representation.
Solution
First change the number to binary
100000010. Add seven 0s to make a total of
N (16) bits, 0000000100000010. The sign is
negative, so each bit is complemented. The
result is:
1111111011111101
Table 3.6 Example of storing one’s complement integer
two different computers
Decimal 8-bit allocation
16-bit allocation
-------- ------------
---------------------
---- 00000111
---------
11111000
01111100
0000000000000111
1111111111111000
10000011
overflow
0000000001111100
1111111110000011
overflow
0110000010111000
1001111101000111
Example 11
Interpret 11110110 in decimal if the
number was stored as a one’s
complement
Solution
integer.
The leftmost bit is 1, so the number is
negative. First complement it . The result is
00001001. The complement in decimal is 9.
So the original number was –9. Note that
complement of a complement is the
original number.
Note:
One’s complement means reversing
all bits. If you one’s complement a
positive number, you get the
corresponding negative number. If
you one’s complement a negative
number, you get the corresponding
positive number. If you one’s
complement a number twice, you get
the original number.
Note:
Two’s complement is the most
common, the most important, and
the most widely used representation
of integers today.
Two’s complement
• If the sign is positive, no further action
is needed;
• If the sign is negative, leave all the
rightmost 0s and the first 1 unchanged.
Complement the rest of the bits
e.g. 0000000000101000
1111111111011000
Two’s complement
0000000000101000
1111111111011000
1. 00000000001010002. 216-0000000000101000
One’s complement
1111111111010111
10000000000000000
+1 -) 0000000000101000
1111111111011000
1111111111011000
Table 3.7 Range of two’s complement integers
#--------
of Bits
-------------------------------------
Range
-8
128 ------------------
0
+1
32,768
27
16
32
0 +32,7
67
047
+2,147,483,6
Note:
In two’s complement representation,
the leftmost bit defines the sign of
the number. If it is 0, the number is
positive.
If it is 1, the number is negative.
Example 12
Store +7 in an 8-bit memory location
using two’s complement representation.
Solution
First change the number to binary 111. Add
five 0s to make a total of N (8) bits,
00000111.The sign is positive, so no more
action is needed. The result is:
00000111
Example 13
Store –40 in a 16-bit memory location using
two’s complement representation.
Solution
First change the number to binary 101000.
Add ten 0s to make a total of N (16) bits,
0000000000101000. The sign is negative,
so leave the rightmost 0s up to the first 1
(including the 1) unchanged and
complement the rest. The result is:
1111111111011000
Table 3.8 Example of storing two’s complement integer
two different computers
Decimal 8-bit allocation
16-bit allocation
-------- ------------
---------------------
---- 00000111
---------
11111001
01111100
0000000000000111
1111111111111001
10000100
overflow
0000000001111100
1111111110000100
overflow
0110000010111000
1001111101001000
Note:
There is only one 0 in two’s
complement:
In an 8-bit allocation:
0 00000000
Example 14
Interpret 11110110 in decimal if the
number was stored as a two’s
complement
Solution
integer.
The leftmost bit is 1. The number is
negative. Leave 10 at the right alone and
complement the rest. The result is
00001010. The two’s complement number
is 10. So the original number was –10.
Note:
Two’s complement can be achieved by
reversing all bits except the rightmost bits
up to the first 1 (inclusive). If you two’s
complement a positive number, you get
the corresponding negative number. If you
two’s complement a negative number, you
get the corresponding positive number. If
you two’s complement a number twice,
you get the original number.
Table 3.9 Summary of integer representation
Contents of Unsigned
Sign-and-
Magnitude One’s Two’s
Complement
Complement
Memory
-----------
-----------
-
-0
0000
0001
12
0010
0011
34
0100
0101
56
0110
0111
78
1000
1001
910
1010
1011
11
1100
12
13
1101
1110
14
1111
15
3.5
FLOATING-POINT
REPRESENTATION
Table 3.10 Example of normalization
Original Number Move
OriginalNumber
------------
------------
-------- Normalized
------------
+1010001.1101
-111.000011
----
6
xx
+0.0000011100 2
1
6 xx
-001110011
3
Figure 3-8
IEEE standards for floating-point representation
Example 19
Show the representation6 of the
normalized number + 2 x
1.01000111001
Solution
The sign is positive. The Excess_127
representation of the exponent is 133. You add
extra 0s on the right to make it 23 bits. The
number in memory is stored as:
0 10000101
01000111001000000000000
Table 3.11 Example of floating-point representation
Number Sign
---- Exponent
----------
Mantissa
-2 ------------
2 x 1.11000011
10
10000001
-
-------------------------
------
+2 -6 x 1.11001
-2-3 x 1.110011
1
01111001
11000011000000000000000
11001000000000000000000
01111100
11001100000000000000000
Example 20
Interpret the following 32-bit floating-
point number
1 01111100
11001100000000000000000
Solution
The sign is negative. The exponent is –3
(124 – 127). The number after
normalization is
-2 -3 x 1.110011