10/6/04

A study group writes:

     Dear Professor Patt,
     To represent the decimal number -64 how many bits would you
     need? Within our study group there was a discrepancy over
     whether it was 7
     bits or 8 bits. We know the formula for the total negative numbers
     represented with 2's compliment is 2 ^ (n-1), however, 

Good!

     when writing -64 in binary we had trouble. Would it be
     1000000 or would you have to write -64 as
     +64 in 2's compliment first and then convert it to a negative
     number by inverting all the bits and adding one?

So, let's look at this a little more carefully. With 7 bits, you can (as you know) represent 128 integers. The non-negative integers 0 to 63 occupy 64 of them. We can form a negative number having the same absolute value as the corresponding positive number in the way you suggest. There are 63 of them, giving values -1 to -63. So, 64 non-negatives + 63 negatives = 127 total. But with seven bits we can represent 128 integers. So, what do we do? Rather than waste the remaining code, we use it to encode the "next" negative number -64. That is the standard practice, and yes it does create a slight unbalance. And no, we can not get -64 by starting with +64 since +64 is not representable in 2's complement with 7 bits. OK?

Yale Patt

ps. It is 2's complement, rather than 2's compliment. 2's compliment might be a remark 2 made to 5, "How big and strong you are." But the night before the exam you can probably do without my weird sense of humor.

     Thank You,
     << name withheld to protect .... >>