Homework #9 KEY – answers
in fuschia – 40 points total
Question 1 – Needs to say
whether overflow occurred to get the 2 points for each part
1. Perform the arithmetic operations below with binary numbers and with negative numbers in signed-2’s complement representation. Use seven bits to accommodate each number together with its sign. In each case, determine if there is an overflow by checking the carries into and out of the sign bit position.
a. (+35) + (+40)
+35 |
|
0 |
1 |
0 |
0 |
0 |
1 |
1 |
|
+40 |
|
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
sum |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
overflow occurred because there
is carry into the sign bit and no carry out |
b.
(-35) + (-40) should have
been either (-35) + (+40) or (+35) +
(-40)
+35 |
|
0 |
1 |
0 |
0 |
0 |
1 |
1 |
|
-40 |
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
|
sum |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
no overflow occurred because there
is no carry into the sign bit and no carry out |
-35 |
|
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
+40 |
|
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
sum |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
no overflow occurred because there
is carry into the sign bit and carry
out |
a. (-35) + (-40)
-35 |
|
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
-40 |
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
|
sum |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
overflow occurred because there
is no carry into the sign bit and carry out |
Dividing by powers of two: Dividing by a power of 2 can be performed using right shift operations. The two different shifts – logical and arithmetic – serve this purpose for unsigned and two’s-complement numbers, respectively. Integer division always rounds towards zero. For x >= 0 and y> 0, the result should be the floor of x/y. ... For x < 0 and y > 0, the results of the integer division should be the ceiling of x/y (i.e. integer division should round negative results upwards toward zero. As we saw in class, -5/2 yielded -3 when it should have yielded -2. This can be “fixed” by “biasing” the value before shifting. We do this by adding 2k-1 to x before right shifting (where k is the number of power of 2 we are dividing by). For example, to divide -5 by 2, we first add 21-1 or 1 to x, giving us 1100, Right shifting 1 place gives us 1110 which is the two’s complement representation of -2. (information paraphrased and taken from Computer Systems, A Programmer’s Perspective, by Randal E. Bryant and David O’Hallaron.
Question 2 – 1 point for
each of the 12 answers (12 points)
1.
Show the largest and smallest two’s
complement numbers that can be represented in each of the following number of
bits and tell their decimal values
|
# bits |
largest two’s complement |
decimal equivalent |
smallest two’s complement |
decimal equivalent |
a. |
4 |
0111 |
7 |
1000 |
-8 |
b. |
6 |
011111 |
31 |
100000 |
-32 |
c. |
9 |
0111111111 |
255 |
100000000 |
-256 |
Question 3 – 1 point for
each of the 15 answers (15 points) - Note, if the binary is
incorrect, then take off the point
but if the octal and hex match the incorrect binary, don’t
deduct further
2. What
are the binary,
octal, and
hexadecimal representations for each of the following decimal numbers?
|
decimal |
binary |
octal |
hexadecimal |
a. |
2347 |
100100101011
|
4453 |
92B |
b. |
98721 |
11000000110100001 |
300641 |
C0A1 |
c. |
582 |
101000110 |
506 |
164 |
d. |
0.5 |
0.1 |
0.4 |
0.8 |
e. |
0.2 |
0.001100110011… |
0.1463 |
0.333333 |
2347 = 2048 + ? 299
299 = 256 + ? 43
43 = 32 + 11
11 = 1011
100100101011
0.5
2
1.0
******************************
.2
2
0.4
2
0.8
2
1.6
2
1.2
2
0.4
2
0.8
3. Find and bring in a URL that explains floating point representation
if URL works, 3 points - only 1 if it’s just present but doesn’t work
4. Find and bring in a URL that explains overflow
if URL works, 3 points - only 1 if it’s just present but doesn’t work
5. Find and bring in a URL that explains underflow
if URL works, 3 points - only 1 if it’s just present but doesn’t work