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

 

 

 

b.

98721

 

 

 

c.

582

 

 

 

d.

0.5

 

 

 

e. 

0.2

 

 

 

                            

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