Half adder vs full adder: two bits, or two bits plus a carry
A half adder and a full adder both add binary digits. A half adder adds two bits, A and B, and gives a sum S = A XOR B and a carry C = A AND B, using one XOR gate and one AND gate. A full adder adds three bits, A, B and a carry-in from the column to its right, and gives a sum and a carry-out; it is built from two half adders and an OR gate that merges their carries. The extra input is the whole difference: only a full adder can take the carry from the previous column, so only full adders can be chained to add numbers wider than one bit. Use a half adder for the lowest column, where nothing carries in; use full adders everywhere else.
What each one is good at
The half adder is the smallest piece of arithmetic hardware, two gates, and is exactly right where no carry comes in, such as the least significant column or an incrementer that adds 1. The full adder is the general-purpose column: chain one per bit, each carry-out feeding the next carry-in, and you have a ripple-carry adder of any width; faster adders such as carry-lookahead still use the same sum logic.
Build both live in digiwleea
Both circuits are live and verified against their truth tables in digiwleea: the half adder from an XOR and an AND, and the full adder from two half adders and an OR. You can also build them from one gate type, the half adder from NAND gates and the full adder from NAND gates, and in the course you go on to an 8-bit adder and an ALU, with the full adder lesson explaining each step.
Side by side
| Half adder | Full adder | |
|---|---|---|
| Inputs | A, B | A, B, carry-in |
| Outputs | Sum, carry | Sum, carry-out |
| Equations | S = A XOR B, C = A AND B | S = A XOR B XOR Cin, Cout = AB + Cin(A XOR B) |
| Gates | 1 XOR, 1 AND | 2 XOR, 2 AND, 1 OR |
| Chains into multi-bit adders | No (no carry-in) | Yes |
Half adder truth table
| A | B | Sum | Carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Full adder truth table
| A | B | Cin | Sum | Cout |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
No sign-up is needed to start: open the lab and place your first transistor, or read the free theory course. The account (and the AI tutor) are optional.
More comparisons: Digital logic concepts compared
See for yourself: build a logic gate from transistors in the simulator, then follow the path from sand to an 8-bit CPU.
Open the digiwleea lab →Frequently asked
What is the difference between a half adder and a full adder?
A half adder adds two bits and has no carry input. A full adder adds two bits plus a carry-in, so it can be chained to add multi-bit numbers.
How many half adders make a full adder?
Two, plus an OR gate: the first half adder adds A and B, the second adds that sum to the carry-in, and the OR combines the two carries into the carry-out.
Why is it called a half adder?
Because it does only half the job of a column in binary addition: it adds the two bits but cannot take in a carry from the previous column.
How many gates are in a half adder and a full adder?
A half adder uses two gates, an XOR and an AND. A full adder built from two half adders and an OR uses five: two XOR, two AND and one OR.