What is the difference between a half adder and a full adder?
A full adder has a third input, the carry from the previous bit, so full adders can be chained to add multi-bit numbers. A half adder only adds two bits.
A half adder adds two single bits and produces a sum bit and a carry bit. It is the smallest piece of binary arithmetic and the building block of the full adders inside every processor's arithmetic unit.
Adding two bits has four cases: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 and 1 + 1 = 10 in binary. The right-hand digit is the sum and the left-hand digit is the carry.
The sum is 1 when exactly one input is 1. That is the definition of exclusive OR, so U1, an XOR gate, produces Sum = A ⊕ B.
The carry is 1 only when both inputs are 1, which is an AND gate: U2 gives Carry = A · B. Both gates read the same two inputs, so A and B each branch to both gates. The dots mark where each input splits; where the A branch crosses the B wire there is no dot, so they are not connected.
A half adder has no carry input, so on its own it can only add the lowest bits of two numbers. Two half adders and an OR gate make a full adder, and a chain of full adders adds numbers of any width.
S = A ⊕ B = A·B̄ + Ā·BC = A · BA B → S C: 0 0 → 0 0, 0 1 → 1 0, 1 0 → 1 0, 1 1 → 0 1| Ref | Part | Value | What it does |
|---|---|---|---|
| U1 | XOR gate | — | XOR gate, for example one gate of a 74HC86. |
| U2 | AND gate | — | AND gate, for example one gate of a 74HC08. |
Recovered from the drawing itself: every pin on each net below is joined by a wire, a junction or a shared supply or ground symbol.
| Net | Connects |
|---|---|
| A | U1.in1, U2.in1 |
| B | U1.in2, U2.in2 |
| Sum | U1.out |
| Carry | U2.out |
A full adder has a third input, the carry from the previous bit, so full adders can be chained to add multi-bit numbers. A half adder only adds two bits.
One XOR gate for the sum and one AND gate for the carry. The same function can be built from five NAND gates.
A 74HC86 (four XOR gates) and a 74HC08 (four AND gates) on a 5 V supply, with switches or pull-down resistors on the inputs and LEDs on the outputs.
Open this circuit in the AI circuit diagram maker and ask for a change in plain English, edit a value, switch to IEC symbols, or export it as SVG, PNG, PDF, a KiCad project or a SPICE netlist. Opening the example and exporting it are free.
An Arduino Uno reads a pot on A0 and dims an LED with PWM on D9.
Open the diagram in ProtoFlow, the free AI PCB design app for Windows, macOS and Linux: pick real parts, lay out and route the board, simulate with SPICE and export Gerbers. Imports and exports KiCad, Altium and EAGLE.
Free to start. No card required.