How to Do Binary Subtraction Without Complements
Direct binary subtraction is an arithmetic process used to find the difference between two base-2 numbers without relying on complement methods like 1’s or 2’s complement. This technique operates identically to traditional base-10 long subtraction, utilizing column-by-column evaluation and a borrowing mechanism whenever a larger bit is subtracted from a smaller one. This guide explains the fundamental rules of binary subtraction, how borrowing works in base-2, and provides a clear, step-by-step example.
The Four Fundamental Rules
Binary subtraction uses only two digits: 0 and
1. When subtracting bit by bit from right to left (least
significant bit to most significant bit), four primary conditions
occur:
- 0 − 0 = 0
- 1 − 0 = 1
- 1 − 1 = 0
- 0 − 1 = 1 (requires a borrow of 1 from the adjacent left column)
Understanding the Binary Borrow
In decimal (base-10) subtraction, borrowing from the next column adds \(10\) to the current position. Because binary is base-2, borrowing from the next higher column adds \(2\) (written as \(10_2\)) to the current position.
When evaluating 0 − 1: 1. Take \(1\) from the column immediately to the left. That left-hand bit decreases from \(1\) to \(0\). 2. Add \(2\) (\(10_2\)) to the current column. 3. Perform the subtraction: \(2 - 1 = 1\).
Borrowing Across Multiple Zeros
If the adjacent left column contains a 0, you must
continue moving left until you locate the first 1. * That
1 becomes 0. * Every intermediate
0 you skipped becomes 1 (since it receives
\(2\) and immediately lends \(1\) to the right). * The target position
that initiated the borrow receives \(2\) (\(10_2\)).
Step-by-Step Example
Subtract \(0111_2\) (decimal 7) from \(1010_2\) (decimal 10):
1 0 1 0
- 0 1 1 1
---------
Step 1: Column 1 (Rightmost Bit)
- Calculate:
0 − 1. - Borrow
1from Column 2. Column 2 changes from1to0. - Column 1 receives \(2\) (\(10_2\)).
- Result: \(2 - 1 = 1\).
Step 2: Column 2
- Column 2 is now
0due to the previous borrow. - Calculate:
0 − 1. - Column 3 contains a
0, so move to Column 4 to borrow. - Column 4 changes from
1to0. - Intermediate Column 3 becomes
1. - Column 2 receives \(2\) (\(10_2\)).
- Result: \(2 - 1 = 1\).
Step 3: Column 3
- Column 3 is now
1. - Calculate:
1 − 1 = 0.
Step 4: Column 4 (Leftmost Bit)
- Column 4 is now
0. - Calculate:
0 − 0 = 0.
Final Result
Combining the results from left to right yields: \(0011_2\) (which equals decimal 3, confirming \(10 - 7 = 3\)).