So far in our study of binary arithmetic, we have only considered positive numbers. Now we need a way to represent signed numbers like -0.95310 or -3210. When we do our computations in decimal, we simply attach a minus sign to the front of a number to make the number negative. Since computers can only work with ones and zeros, we need to modify this approach slightly.

One solution is to add an extra digit to the front of our binary number to indicate whether the number is positive or negative. In computer terminology, this digit is called a sign bit. Remember that a "bit" is simply another name for a binary digit. When our number is positive, we make our sign bit zero, and when our number is negative, we make our sign bit one. This approach is called the Signed Magnitude Representation. Notice that this is very similar to adding a minus sign in decimal.

We still have one small problem with our representation, however. We need to specify how many bits are in our numbers so we can be certain which bit is representing the sign. Let's convert the the decimal numbers -510 and -110 to binary using Signed Magnitude Representation. For these numbers, four bits will be enough to represent both.



  1. First, we convert 5 and 1 to binary.
   101  (5)
     1  (1)
  1. Now we add a sign bit to each one. Notice that we have padded '1' with zeros so it will have four bits.
  0101  (5)
  0001  (1)
  1. To make our binary numbers negative, we simply change our sign bit from '0' to '1'.
  1101 (-5)
  1001 (-1)

Be sure that you do not mistake the number 11012 for 1310. Since we are using 4-bit signed magnitude representation, we know the first bit is our sign and the remaining three bits are our number.

While representing negative numbers with signed magnitude is simple, performing arithmetic with signed magnitude is difficult. What we would really like to have is a way of representing signed numbers that simplifies our binary arithmetic. Suppose we could represent signed numbers in such a way that all our computations could be completed using only addition. This would allow our computer processor to perform all arithmetic operations with only addition circuitry. We already know that multiplication is really repeated addition, so this is not a problem. This leaves division and subtraction. But division is just repeated subtraction. Now we are left with only subtraction. How can we convert our subtraction problems to addition?

Consider the subtraction problem 3010 - 610. We can convert this problem to an equivalent addition problem by changing 610 to -610. Now we can state the problem as 3010 + (-610) = 2410. We can do something similar to this in binary by representing negative numbers as complements. We will look at two ways of representing signed numbers using complements: 1's complement and 2's complement.