Let's consider how we would solve our problem of subtracting 110 from 710 using 1's complement.
  1. First, we need to convert 00012 to its negative equivalent in 1's complement.
    0111    (7)
  - 0001  - (1)
  1. To do this we change all the 1's to 0's and 0's to 1's. Notice that the most-significant digit is now 1 since the number is negative.
  0001 -> 1110
  1. Next, we add the negative value we computed to 01112. This gives us a result of 101012.
    0111    (7)
  + 1110  +(-1)
   10101    (?)
  1. Notice that our addition caused an overflow bit. Whenever we have an overflow bit in 1's complement, we add this bit to our sum to get the correct answer. If there is no overflow bit, then we leave the sum as it is.
    0101
  +    1
    0110    (6)
  1. This gives us a final answer of 01102 (or 610).
    0111    (7)
  - 0001  - (1)
    0110    (6)

Now let's look at an example where our problem does not generate an overflow bit. We will subtract 710 from 110 using 1's complement.

  1. First, we state our problem in binary.
    0001    (1)
  - 0111  - (7)
  1. Next, we convert 01112 to its negative equivalent and add this to 00012.
    0001    (1)
  + 1000  +(-7)
    1001    (?)
  1. This time our results does not cause an overflow, so we do not need to adjust the sum. Notice that our final answer is a negative number since it begins with a 1. Remember that our answer is in 1's complement notation so the correct decimal value for our answer is -610 and not 910.
    0001    (1)
  + 1000  +(-7)
    1001   (-6)

The animation below demonstrates how to subtract the 5-bit binary numbers 011012 and 010012 using 1's complement representation. Click on the "Start Tutorial" button to view the animation.





Text-only version

Let's review the steps for subtracting x from y with an n-bit 1's complement representation.

  1. Negate x using 1's complement.
    1. Reverse all the bits in x to form -x.
  2. Add -x and y.
  3. If the sum exceeds n bits, add the extra bit to the result.
  4. If the sum does not exceed n bits, leave the result as it is.