The Half Adder
Adding two bits needs two answers. One of them is XOR and the other is AND, which means you have already built it.
Add two bits together. There are only four sums to do, so do all of them:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Three of those fit in one bit. The last one does not.
1 + 1 is two, and two in binary is 10. It needs two bits: a 0 in the ones place and a 1
in the twos place. Exactly what happens on paper when a column overflows and you carry one.
So adding two bits produces two answers, not one. The bit that stays, which we will call the sum, and the bit that moves up a place, the carry.
Two answers, two columns
Write those four sums as a table, with a column for each answer:
| A | B | SUM | CARRY |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Now look at those two columns and do not think about arithmetic for a moment. Think about where you have seen them.
0 1 1 0. That is XOR.
0 0 0 1. That is AND.
Not similar to them. Identical. The sum of two bits is A XOR B, and the carry is
A AND B.
So the circuit is already built
If the two answers are XOR and AND, then adding two bits needs one XOR gate and one
AND gate, both fed from the same pair of wires.
That is the whole thing:
Click an input to turn it on or off, and watch the wires.
| A | B | SUM | CARRY |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Turn both inputs on and watch. The sum drops to 0 and the carry comes up. The circuit is doing arithmetic, and nothing in it knows that. It is two truth tables wired to the same inputs.
This is called a half adder, and it is the first machine most people ever understand completely.
Why only half
It has a gap. It produces a carry and it has nowhere to accept one.
That is fine for the rightmost column of a sum, where nothing has come before. It is no use for any other column. Add 3 and 1 in binary:
11
+ 01
The right-hand column gives sum 0, carry 1. The left-hand column now has three bits to add: its own two, plus the carry that arrived. A half adder has two inputs. It cannot take a third.
When it’s wrong, see why
- Your sum is 1 when both inputs are 1. You have wired
ORwhere you needXOR. They differ in exactly that row. - The carry never lights. Check the
AND. It is the only gate that fires on the bottom row alone. - You expected one answer and got two. Two is correct. A single bit cannot hold the answer to 1 + 1, which is the reason a carry exists at all.
What you’ve learnt
- Adding two bits gives two answers: a sum and a carry.
- The sum column is
XORand the carry column isAND. - A half adder is those two gates on the same inputs.
- It cannot accept a carry, only produce one, which is why it is half of something.
What’s next
In Unit 3 we give it the third input it is missing, and then chain the result together to add numbers of any size.