Full Adder

Inputs

PinTypeDescription
AbitFirst addend
BbitSecond addend
CarryInbitCarry-in from previous bit

Outputs

PinTypeDescription
SumbitA XOR B XOR CarryIn
CarryOutbit(A ∧ B) ∨ (A ∧ Ci) ∨ (B ∧ Ci)

How It Works

Think of column addition: in each digit you add two figures plus the "one in mind" that came from the lower digit. A full adder does exactly this: A and B bring the bits of the current digit, CarryIn carries the carry from the left, and the outputs Sum and CarryOut produce the result for this digit and the carry to the right.

The key property: Sum = XOR(XOR(A,B), Cin) — a double XOR adds all three bits without a carry, while CarryOut fires when at least two of the three inputs are ones. Example: 1+1+0 = 10₂ — Sum=0, CarryOut=1. And 1+1+1=11₂, which is 3: a one in the sum and a one in the new carry.

A full adder is built from two half adders and one OR: the first adds A and B, the second adds CarryIn to the result, and the OR merges their carries. The nuance hides in the chain: the CarryOut of each digit feeds the CarryIn of the next, which is why the scheme is called ripple-carry — the carry ripples along the chain like a wave, and the highest digit must wait for the lowest.

Truth Table and Examples

ABCarryInSumCarryOut
00000
00110
01010
01101
10010
10101
11001
11111

Eight rows — one per combination of the three inputs. Note the extremes: 0+0+0=0 with no carry and 1+1+1=3, where both Sum and CarryOut are ones (the result is 11₂). Another example: with A=1, B=0, CarryIn=1 the sum is 2 — Sum=0, CarryOut=1.

Usage

The full adder is the hero of Level 7, and at Level 8 a chain of eight becomes the 8-bit adder: a half adder serves the lowest bit, then seven full adders carry the carry through bits 1–7. The same block sits at the core of the processor's ALU, where addition is the primary arithmetic operation.

A cascade of adders can do more than it seems: subtraction in two's complement is addition with an inverted number and a one on the carry input; comparing numbers is subtraction plus a carry check. Even the program counter (Level 14) is a register plus an adder that adds one every clock tick.

Interactive Demo

Click inputs to toggle value (0 / 1)

Build it yourself →

Related components

Related articles

Frequently Asked Questions

Why does a full adder need a carry input?

To build cascades for multi-bit addition: each bit’s carry is passed to the next one.

How many full adders does 8-bit addition need?

Eight, chained together so the carry of each flows into the next bit.

How do I build a full adder from half adders?

Two half adders and one OR: the first adds A and B, the second adds CarryIn, and the OR merges their carry outputs into CarryOut.

Why is the chain called ripple-carry?

The carry travels from the lowest digit to the highest like a wave: every digit waits for the previous one, so the speed is limited by the chain length.