Binary Subtraction
For binary subtraction, there are four facts instead of one hundred:
00=0
10=1
11=0
10 1 = 1
The first three are the same as in decimal. The fourth fact is the only new one; it is the borrow case. It
applies when the top digit in a column is 0 and the bottom digit is 1. (Remember: in binary, 10 is
pronounced one-zero or two.)
Now lets subtract 1011.11 from 10101.101, following the same algorithm I used for decimal numbers:
Steps of Binary Subtraction
Step 1: 1 0 = 1.
Step 2: Borrow to make 10 1 = 1.
Step 3: Borrow to make 10 1 = 1.
Step 4: Cascaded borrow to make 10 1 = 1.
Step 5: 1 1 = 0.
Step 6: 0 0 = 0.
Step 7: Borrow to make 10 1 = 1.
Since there are lots of 0s in binary numbers, there can be lots of borrows and lots of messy looking crossouts.
Checking the Answer
You can check the answer in a few ways. One way is to add the result (1001.111) to the subtrahend
(1011.11), and check that that answer matches the minuend (10101.101):
Check Binary Subtraction Using Binary Addition
Another way is to convert the operands to decimal, do decimal subtraction, and thenconvert the decimal
answer to binary. 10101.101 = 21.625 and 1011.11 = 11.75, and 21.625 11.75 = 9.875. 9.875 =
1001.111, the answer we got using binary subtraction.
You can also check the answer using my binary calculator.
Subtracting a Bigger Number From a Smaller Number
To subtract a bigger number from a smaller number, just swap the numbers, do the subtraction, and negate
the result.
Discussion
Notice that I didnt discuss the number base when describing the algorithm; it is base-independent.
Nonetheless, I could have talked about powers of ten and powers of two, and how the process can be
visualized by regrouping. My goal was to explain just the mechanized algorithm (presumably you do decimal
subtraction mechanically, no longer thinking about why it works).
Subtracting Using Complements
Computers dont subtract this way; they subtract by adding complements. Its more efficient. You can do
subtraction by complements with pencil-and-paper, but you wont find it more efficient. (In decimal, you
would use nines complement or tens complement; in binary, you would use ones complement or twos
complement.)