Full Adder: Implementation and Truth Table
A full adder adds three bits: two operand bits and a carry from the previous column. It is the building block every multi-bit adder is made of.
Why three inputs
When you add binary numbers column by column, every column except the rightmost can receive a carry. A half adder has no input for that, so it can only handle the first column. The full adder adds a CIN input to fix exactly that.
Truth table
| A | B | CIN | SUM | COUT |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Building it from two half adders
First half adder
Add A and B. This gives a partial sum and a first carry.
Second half adder
Add that partial sum to CIN. This produces the final SUM and a second carry.
OR the two carries
A carry out happens if either half adder generated one. They can never both be 1, so a single OR gate combines them: COUT = C1 OR C2.
The boolean expressions
SUM = A XOR B XOR CIN and COUT = (A AND B) OR (CIN AND (A XOR B))
Chaining full adders
Wire each adder's COUT into the next one's CIN and you have a ripple-carry adder, the simplest way to add multi-bit numbers. The name comes from the carry having to ripple through every stage before the answer is final, which is what limits its speed.
Build it yourself
Start from two half adders rather than trying to wire all five gates at once.