-
=
Step by step solution?
No

# Binary Subtraction Calculator

By Wojciech Sas, PhD candidate

This binary subtraction calculator is a great tool to help you understand how to subtract binary numbers. Here you can find descriptions of the two primary methods that deal with the subtraction of binary numbers, namely the Borrow Method, and the Complement Method. There is also a short note about the different representations of signed and unsigned binary numbers at the end.

## How to subtract binary numbers?

The subtraction of binary numbers is essentially the same as for decimal, hexadecimal, or any other system of numbers.

Just to clarify things - binary numbers are values containing only two types of digits, 0 or 1. Every digit refers to the consecutive powers of 2, and whether it should be multiplied by 0 or 1. As an example, `13` in decimal notation is equivalent to `1101` in binary notation, because `13 = 8 + 4 + 1`, or `13 = 1*2³ + 1*2² + 0*2¹ + 1*2⁰` using scientific notation.

So, how to subtract binary numbers, e.g., `1101 - 110`? We can always convert these values to decimals, classically subtract them, and then transform them once again into binary form:

`1101₂ - 110₂ = 13₁₀ - 6₁₀ = 7₁₀ = 111₂`,

Where ₂ = a binary number and ₁₀ = a decimal number. As long as the number of digits is relatively small, we can do it by hand. For long numbers, it gets quite tricky. And what if we wanted to subtract a larger number from a smaller one? Here is where the binary subtraction calculator comes in handy! Let's jump to the next section to learn about the different methods of solving these problems.

## Methods of subtraction of binary numbers

In this part, we will describe two methods of dealing with the subtraction of binary numbers, the Borrow Method and the Complement Method. There are several other tricks as well, but these two are the most prevalent, and help you understand the problem better.

1. Borrow Method - all you have to do is aligning the numbers as you would do with regular decimal subtraction. The procedure is almost the same! The only difference is that you operate with only two digits, not ten. You need to subtract digits in the same column, following these rules: • `1 - 0 = 1`;
• `1 - 1 = 0`;
• `0 - 0 = 0`; and
• `0 - 1 = 1` which actually comes from `10 - 1 = 1`, as you borrow `1` from the closest digit to the left, and after all that the `1` you borrowed becomes `0`.
1. Complement Method - the process is divided into a few steps: • Align the numbers as would normally;
• Fill the second number with leading `0's`, so that both values have the same number of digits;
• Replace the second number by its complement;
• Add these two binary numbers;
• Remove the leading `1` from the result, as there will be one digit more than we need; and
• That's it! The remaining part is the final result.

If you want to see a step by step solution for your problem using the Complement Method, select "Yes" at the bottom of our binary subtraction calculator.

By the way, did you know that the concept of binary subtraction is quite common in several parts of a developers' toolkit? For example, the chmod command is one of them.

## How to use the binary subtraction calculator?

Let's see how to subtract two binary numbers, e.g., `110 0101 - 1000 1100`. It's quite tricky because the second number has more digits than the first one, so we are about to subtract a larger number from a smaller one.

There is a clever way to work around this task. We can use use the identity `a - b = -(b - a)`, so we're going to reverse the order of subtraction and add a minus sign at the end. In other words, we estimate the absolute value and eventually attach a minus sign. Let's use the complement method:

1. By reversing the order, we have `1000 1100 - 110 0101`;

2. Fill the second value with one leading zero, `1000 1100 - 0110 0101`;

3. Find the complement of the second number - switch digits (`0→1, 1→0`) and add 1, `0110 0101 → 1001 1011`;

4. Add the first number and the complement of second one together, `1000 1100 + 1001 1011 = 1 0010 0111`;

5. Remove the leading `1` and any adjacent `0's`, `1 0010 0111 → 10 0111`

6. Remember to add a minus sign, so the outcome becomes `-10 0111`;

7. The final result of the subtraction of these binary numbers is `110 0101 - 1000 1100 = -10 0111`; and

8. We can also convert the values to decimals to confirm the computations: `110 0101₂ - 1000 1100₂ = 101₁₀ - 140₁₀ = -39₁₀ = -10 0111₂`. Wonderful!

## Binary numbers sign representations

Before making any computation, there is one crucial thing we have to take into account - the representation of numbers in binary code, especially the sign:

• The one we implement in our binary subtraction calculator, uses a minus sign (`-`) like we usually do with decimal numbers. In 8-bit code, `5` in binary is `0000 0101`, while `-5` is `-0000 0101`. This system is really convenient because we don't have to care about the number of digits, so we can remove all the leading zeros with no issue. The numbers are then `101` and `-101`, respectively.

You may also come across different notations:

• One of them uses the first digit as the sign, typically 0 for positive and 1 for negative. If `5` in binary is `0000 0101`, then `-5` becomes `1000 0101`.

• Another one states that a negative number is the complement of the positive one, so `5` is once again `0000 0101`, and `-5` is `1111 1011`. We can see that the first digit still indicates the sign of a number.

Whenever you copy a value to our tool, make sure you input the number using the appropriate representation, e.g., if it has the first digit represents the sign, substitute `1` with `-`, or leave `0` as it is.

Wojciech Sas, PhD candidate