How to subtract numbers in binary
Categories:
Mastering Binary Subtraction: Techniques and Examples

Explore the fundamental methods for subtracting binary numbers, including the direct borrow method and the more common two's complement approach, essential for digital electronics and computer science.
Subtracting numbers in binary is a core operation in digital computing, just as it is in decimal. However, the process can seem a bit different due to the base-2 nature of binary. This article will guide you through the primary methods for binary subtraction: the direct borrow method and the two's complement method. Understanding these techniques is crucial for anyone working with low-level programming, digital logic, or computer architecture.
Method 1: Direct Binary Subtraction (Borrow Method)
The direct borrow method for binary subtraction is analogous to the traditional subtraction method we use with decimal numbers. When a digit in the minuend is smaller than the corresponding digit in the subtrahend, we 'borrow' from the next higher place value. In binary, borrowing from the next column means adding 2
(which is 10
in binary) to the current column's digit, while reducing the digit in the column from which we borrowed by 1
.
Let's break down the rules for binary subtraction:
1. 0 - 0 = 0
When subtracting zero from zero, the result is zero.
2. 1 - 0 = 1
Subtracting zero from one yields one.
3. 1 - 1 = 0
Subtracting one from one results in zero.
4. 0 - 1 = 1 (with a borrow)
This is the crucial step. When you subtract one from zero, you need to borrow from the next significant bit. The 0
becomes 10
(binary for 2
), and 10 - 1 = 1
. The bit from which you borrowed is then reduced by 1
.
flowchart TD A[Start Subtraction] --> B{Current Bit: Minuend < Subtrahend?} B -- Yes --> C[Borrow from next bit] C --> D[Add 2 to current minuend bit] D --> E[Perform Subtraction] B -- No --> E[Perform Subtraction] E --> F[Record Result] F --> G{More bits?} G -- Yes --> A G -- No --> H[End]
Flowchart of the Direct Binary Subtraction (Borrow Method)
Method 2: Two's Complement Subtraction
The two's complement method is the most common way computers perform subtraction because it allows subtraction to be treated as addition. This simplifies the arithmetic logic unit (ALU) design, as it only needs to perform addition and negation (finding the two's complement) rather than separate subtraction logic. The core idea is that A - B
is equivalent to A + (-B)
. In binary, -B
is represented by the two's complement of B
.
Here's how to find the two's complement of a binary number:
1. Step 1: Pad to a fixed bit length
Ensure both numbers have the same number of bits, typically 8, 16, 32, or 64, depending on the system's architecture. If the numbers are shorter, pad with leading zeros.
2. Step 2: Find the one's complement
Invert all the bits of the subtrahend (change all 0
s to 1
s and all 1
s to 0
s). This is also known as the one's complement.
3. Step 3: Add 1 to the one's complement
Add 1
to the result of the one's complement. This gives you the two's complement of the subtrahend.
4. Step 4: Add the two's complement
Add the two's complement of the subtrahend to the minuend. Perform binary addition as usual.
5. Step 5: Handle the carry-out bit
If there is a carry-out bit from the most significant position, discard it. The remaining bits are your result.
Example: Subtracting using Two's Complement
Let's subtract 0110
(decimal 6) from 1010
(decimal 10) using the two's complement method. Both numbers are 4-bit for this example.
Minuend (A): 1010
(decimal 10)
Subtrahend (B): 0110
(decimal 6)
1. Step 1: Find one's complement of B
Invert 0110
to get 1001
.
2. Step 2: Find two's complement of B
Add 1
to 1001
: 1001 + 1 = 1010
. So, the two's complement of 0110
is 1010
.
3. Step 3: Add A and two's complement of B
Add 1010
(A) and 1010
(two's complement of B):
1010
+ 1010
------
10100
4. Step 4: Discard carry-out
The result 10100
has a carry-out bit at the 5th position. Discard it. The final 4-bit result is 0100
.
The result 0100
is decimal 4
, which is correct (10 - 6 = 4
).