bits, data types, and operations: chapter 2
DESCRIPTION
1. Bits, Data types, and Operations: Chapter 2. COMP 2610. Dr. James Money COMP 2610 . Review of Unsigned Integers. We can write an unsigned integer M=(a k a k-1 … a 2 a 1 a 0 ) 10 a binary number of the form M=(b n b n-1 … b 2 b 1 b 0 ) 2 using simple arithmetic. - PowerPoint PPT PresentationTRANSCRIPT
Bits, Data types, and Operations: Chapter 2
COMP 2610Dr. James Money
COMP 2610
1
Review of Unsigned Integers
We can write an unsigned integer
M=(ak ak-1 … a2 a1 a0)10
a binary number of the form
M=(bn bn-1 … b2 b1 b0)2
using simple arithmetic
Review of Unsigned Integers
To convert from binary to decimal, we compute the appropriate bit times the correct power of 2 and add:
bnx2n + bn-1x2n-1 + … + b2x22 + b1x21 + b0x20
For example,
(0101)2 = 0x23 + 1x22 + 0x21 + 1x20=4+1=(5)10
Review of Unsigned Integers
To convert from decimal number M to binary:
1. Set x=M, k=0
2. Compute x÷2 = y R bk
3. Set x=y, k=k+1
4. Go to 2 if x≠0 and repeat
5. The bits are the remainders listed right to left …b3b2b1b0
Review of Unsigned Integers
For example, (11)10:
11 ÷2 = 5 R1
5 ÷ 2 = 2 R1
2 ÷2 = 1 R0
1 ÷2 = 0 R1
Thus, (11)10 = (1011)2
Review of Unsigned Integers
Addition: add the same way as you would for long addition for decimals, except that (1+1)2 =
(10)2 and you put down 0 and carry the one.
Example: 0101 5
+ 0111 + 7
1100 12
Signed Integers
We need to be able to work with signed integers as well, if for not other reason than to perform subtraction
We can divide the bit codes up into two ranges, one for positive values and one for negative values
For example, 1 to 15, and -1 to -15, plus 0
Signed Integers
How do we do this? First way is signed magnitude – this uses the first
bit as a sign. 0-positive, 1 – negative The remaining bits are interpreted as the magnitude
of the value
For example, -4 for 5 bits is (10100)2 and 4 is
(00100)2
Signed Integers
The second approach flips all the bits. Thus for (4)10 = (00100)2 we have that -4 is
represented by
(11011)2
This is called ones complement.
Signed Integers
The final approach is to use twos complement for the representation.
That is, we compute the ones complement and then add 1.
For example, we have (-4)10 is (11100)2
Signed IntegersRepresentation Signed
Magnitude1’s Complement
2’s Complement
0000 0 0 0
0001 1 1 1
….
0111 7 7 7
1000 -0 -7 -8
1001 -1 -6 -7
1010 -2 -5 -6
1011 -3 -4 -5
1100 -4 -3 -4
1101 -5 -2 -3
1110 -6 -1 -2
1111 -7 -0 -1
Signed Integers
Now, we can use any, but only two’s complements works with arithmetic unchanged from unsigned integers.
In addition, in two’s complement has only one representation for zero.
Signed Integers
Consider 4+-2=2 in each representation and using normal arithmetic– Signed Magnitude: 0100 + 1010 = 1110 = (-6)10
– Ones Complement: 0100 + 1101 = 0001 = (1)10
– Twos Complement: 0100 + 1110 = 0010 = (2)10
Signed Integers
Thus, for simplicity of hardware we use the two’s complement representation
How do we compute two’s complement?1. Write the magnitude of the number in binary
2. Compute the one’s complement, that is flip the bits
3. Add one to the result
Signed Integers
For example, for -9 in 6 bits we have:
(9)10 = (001001)2
One’s complement: (110110)2
Adding one: (-9)10 = (110111)2
Signed Integers
How do we reverse two’s complement? We apply it again! That is
two’s complement(two’s complement(N)) = N
Signed Integers
If the following 6 bits number is in two’s complement form, what is the number?
(101001)2
Compute one’s complement: (010110)2
Add one: (010111)2 = (23)10
Thus, the number is -23