Homework #9

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 arries into and out of the
sign bit position.

a.
(+35) + (+40)

b.
(-35) + (-40)

c.
(-35) + (-40)

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.

2.     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

b.

6

c.

9

3.     What
are the binary,
octal,  and
hexadecimal representations for each of the following decimal numbers?

decimal

binary

octal

hexadecimal

a.

2347

100100101011

4452

92B

b.

98721

c.

582

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

.5

2

1.0

.2

2

0.4

2

0.8

2

1.6

2

1.2

2

0.4

2

0.8

4.     Find
and bring in a URL that  explains
floating point representation

5.     Find
and bring in a URL that explains overflow

6.     Find
and bring in a URL that explains underflow