Why is 1000 = -8 in signed 4-bit binary?

  • Thread starter Thread starter francisg3
  • Start date Start date
  • Tags Tags
    Binary
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 20K views
francisg3
Messages
31
Reaction score
0
I was wondering why 1000 in signed 4-bit binary notation is equal to -8 in decimal. From my understanding, the 1 simply states that sign (1 being negative and 0 being positive) it has no real decimal value. I have read that it is not possible to correctly take the 2's complement of -8 so I cannot come to convince myself that 1000 is in fact -8 in binary.

Thanks for the help!
 
Engineering news on Phys.org
The left-hand bit is indeed the sign bit, but "-0" doesn't really make sense. Plus, if we allowed -0 and +0, we'd have 2 binary values for zero.

The positive values are easy:
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111

For the negative values, you need the 2's complement (invert all the bits, then add "1")

-1 = 1110 + 1 = 1111
-2 = 1101 + 1 = 1110
-3 = 1100 + 1 = 1101
-4 = 1011 + 1 = 1100
-5 = 1010 + 1 = 1011
-6 = 1001 + 1 = 1010
-7 = 1000 + 1 = 1001

The only combination not yet used in either positive or negative values is "1000"
This could equal either 8 or -8, so in keeping with the sign bit convention, -8 is used.

So, signed 4-bit binary gives you the values -8 to 7.
Similarly, signed 8-bit binary give you -128 to 127 and signed 16-bit binary give -32768 to 32767.
 
alright i understand now thanks for the explanation!