Associated Topics || Dr. Math Home || Search Dr. Math

### Binary Subtraction

```Date: 07/04/2003 at 16:10:06
From: Andrew
Subject: Binary Subtraction

I have looked at the examples you provided and they have been very
helpful, but I need help understanding the rules of subtracting
binary numbers when the subtrahend is larger then the minuend.  For
example, I see from the answer provided in a textbook the that

101101
-111101

is -010000  but I can't figure out how the leading -0 was obtained in

Getting the first four zeros in the answer from right to left is
pretty straightforward. Then borrowing from the 32's position gives a
two in the 16's position, so 2 minus 1 is 1 for the answer in the 16
position. That leaves a 0 in the minuend for the thirty two's position
and a 1 in the subtrahend. I can't see how subtracting 1 from zero
yields a -0 for this position as shown in the answer.

Andrew
```

```
Date: 07/04/2003 at 23:23:09
From: Doctor Peterson
Subject: Re: Binary Subtraction

Hi, Andrew.

Let's start by thinking about the more familiar base 10. You'll find
that the same problem exists there, but you probably don't stop to
think about it because the solution is more familiar there.

Let's subtract 61 from 45:

45
- 61
----
-24

I just followed the usual rules for subtraction: 5-1 is 4; 4-6 is -2.
So is the answer -24? No, because if we add 61 to -24 we get

61
- 24
----
37

not 45. What went wrong?

The problem is that when we got that negative sign, it meant only
that the 2 in the tens place was negative; the 4 is still positive!
So what we realy found was that

(40 + 5) - (60 + 1) = (40 - 60) + (5 - 1) = -20 + 4

That is not -24, but -16, which is the right answer to the problem.

So we can't subtract a larger number from a smaller one columnwise,
because the sign gets mixed up.

The usual way to do this is to apply the fact that

a - b = -(b - a)

to say that

45 - 61 = -(61 - 45) = -16

You would do the same thing in binary (and these are in fact the same
numbers):

101101     111101
- 111101   - 101101
--------   --------
= -(010000)

That is, you reverse the order of the numbers, subtract, and take the
negative.

Now, there are a couple of alternative ways to do this, one of which I
don't think I've ever seen (because it doesn't save any work), while
the other is essentially the way a computer handles the problem.

First, we can use the fact I demonstrated above, that the negative
sign applies only to the most significant digit. In the decimal
version of our problem, the work would look like this:

45
- 61
----
-2 <-- subtract tens digits
4 <-- subtract all other digits (in this case, just the ones)
----
-16 <-- subtract 4 from 20, and keep the negative sign

In binary, this would be

101101
- 111101
--------
-1     <-- subtract 11 from 10
0000 <-- subtract the rest
--------
-10000 <-- subtract 0 from -10000

That's not quite as simple as it looked in the decimal example,
because just subtracting 1-1 wasn't enough to fully deal with the
negative sign. I had to take two digits so that what remained could
be subtracted normally. I can see why nobody uses this!

But the computer method is to represent negative numbers in "two's
complement" form. This allows us to directly add or subtract any pair
of numbers, including greater from smaller and negative from positive,
and come up with the correct result, as long as we interpret it
correctly. In this case, if I think of the numbers as having eight
digits, a negative number -x is represented by its twos-complement,
which is 100000000-x. To do the subtraction, I can allow myself to
"borrow" from an imaginary ninth digit, and get

[1]00101101
-  00111101
-----------
11110000

This represents a negative number whose value can be found by taking
its twos-complement; it is -(100000000 - 11110000) = -10000. This
uses the fact that

a - b = -(100000000 - [(100000000 + a) - b])

The same can be done in decimal using tens-complements, which work
exactly the same way. In our example,

[1]45
-  61
-----
84 which means -(100 - 84) = -16

Subtracting and Borrowing in a Column
http://mathforum.org/library/drmath/view/61168.html

Two's Complement
http://mathforum.org/library/drmath/view/54344.html

Subtraction Using Nine's and Ten's Complements
http://mathforum.org/library/drmath/view/55949.html

If you have any further questions, feel free to write back.

- Doctor Peterson, The Math Forum
http://mathforum.org/dr.math/
```
Associated Topics:
High School Calculators, Computers
High School Number Theory

Search the Dr. Math Library:

 Find items containing (put spaces between keywords):   Click only once for faster results: [ Choose "whole words" when searching for a word like age.] all keywords, in any order at least one, that exact phrase parts of words whole words

Submit your own question to Dr. Math
Math Forum Home || Math Library || Quick Reference || Math Forum Search