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 1 from Column 2. Column 2 changes from 1 to 0.
  • Column 1 receives \(2\) (\(10_2\)).
  • Result: \(2 - 1 = 1\).

Step 2: Column 2

  • Column 2 is now 0 due to the previous borrow.
  • Calculate: 0 − 1.
  • Column 3 contains a 0, so move to Column 4 to borrow.
  • Column 4 changes from 1 to 0.
  • 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\)).