A carry is what happens when a column of an addition fills up. The column keeps the part that fits and passes 1 to the next column on the left.
In decimal a column carries when it reaches 10. In binary, a column can only hold 0 or 1, so it carries when the total reaches 2. A binary column adds at most three bits (two operand bits plus the carry from the right), so there are just four cases:
- total 0: write 0, carry 0
- total 1: write 1, carry 0
- total 2 =
10₂: write 0, carry 1 - total 3 =
11₂: write 1, carry 1
Read the pair as a 2-bit number, carry first, and you have the column's total. That's exactly what a full adder outputs. The carry is 1 when at least two of the three inputs are 1.
Names to know:
- the carry entering a column is its carry in
- the carry leaving the top column is the carry out, the bit that doesn't fit in the result
- in an adder circuit, carries pass from bit to bit, and how fast they travel sets the adder's speed (ripple carry adder, carry lookahead adder)
The same idea works in any base: hex addition carries at 16.
| 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 |