A half adder adds two single bits, A and B, and produces a Sum and a Carry, but it ignores any carry from a previous stage. A full adder adds three bits, A, B, and a carry-in, and produces a Sum and a carry-out. So the full adder handles carry, which lets you chain adders for multi-bit numbers. In short, a half adder is the simple building block, and a full adder is the practical one.
Indeed, half adders and full adders are the basic circuits for binary addition. They sit at the heart of every ALU and processor, so digital-electronics and COA students need to know exactly how the two differ.
The core split is the carry-in: a half adder has none, whereas a full adder accepts one. This guide defines each circuit, gives their truth tables and logic equations, compares them in detail, and shows code and use cases.
They are combinational circuits, so it also helps to know combinational vs sequential circuits.

What is a Half Adder?
A half adder adds two single-bit binary numbers. So it has two inputs, A and B, and two outputs, the Sum (S) and the Carry (C). Because it has no carry-in, it can only add the very first pair of bits.
Its logic is simple: the sum is an XOR and the carry is an AND.
Sum = A XOR B
Carry = A AND B
A | B | Sum | Carry
---+---+-----+------
0 | 0 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 1Advantages: a simple design that uses just two gates, so it is easy to build and understand.
Disadvantages: it cannot take a carry from a previous addition, so it is limited to adding two bits.
What is a Full Adder?
A full adder adds two single-bit numbers plus a carry-in. So it has three inputs, A, B, and Cin, and two outputs, the Sum (S) and the carry-out (Cout). That extra input is what makes multi-bit addition possible.
Its sum is a three-way XOR, while the carry-out collects every case that produces a carry.
Sum = A XOR B XOR Cin
Cout = (A AND B) OR (B AND Cin) OR (A AND Cin)
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 | 1Advantages: it handles a carry-in, so you can chain full adders to add multi-bit numbers.
Disadvantages: the design is more complex and needs extra gates.
Half Adder vs Full Adder: Comparison Table

| Aspect | Half Adder | Full Adder |
|---|---|---|
| Adds | Two bits (A, B) | Two bits plus a carry-in |
| Inputs | 2 (A, B) | 3 (A, B, Cin) |
| Outputs | 2 (Sum, Carry) | 2 (Sum, Cout) |
| Gates used | XOR and AND | XOR, AND, and OR |
| Sum equation | A XOR B | A XOR B XOR Cin |
| Carry equation | A AND B | (A AND B) OR (B AND Cin) OR (A AND Cin) |
| Carry-in | Not handled | Handled |
| Cascading | Cannot cascade | Cascades for multi-bit addition |
| Complexity | Simple, fewer gates | More complex, more gates |
| Resource use | Lower | Higher |
| Subtraction | Not directly | Possible via 2’s complement |
| Used for | Single-bit addition | Multi-bit arithmetic, ALUs |
| Role | Basic building block | Building block of larger adders |
Code and Applications

The same logic translates directly into code. For example, here are both adders in JavaScript:
// Half adder
function halfAdder(a, b) {
const sum = a ^ b; // XOR for the sum
const carry = a & b; // AND for the carry
return { sum, carry };
}
// Full adder
function fullAdder(a, b, carryIn) {
const sum = a ^ b ^ carryIn;
const carryOut = (a & b) | (carryIn & (a ^ b));
return { sum, carryOut };
}So both circuits appear throughout digital systems. In particular, you find them in:
- Computer processors and arithmetic logic units (ALUs).
- Microcontrollers and embedded chips.
- Calculator and counter circuits.
- Ripple-carry and carry-lookahead adders built from cascaded full adders.
When to Use a Half Adder or Full Adder
Use a half adder when you only need to add the lowest pair of bits, where there is no carry-in yet. So it fits the very first stage of an adder or simple teaching circuits.
Use a full adder whenever a carry can arrive from a previous stage, which is almost always in real arithmetic. For instance, an n-bit adder uses one half adder (or a full adder with carry-in tied to 0) for the first bit and full adders for the rest.
In short, the half adder explains the idea, while the full adder does the real work of multi-bit addition.
Frequently Asked Questions
Wrapping Up
Half adders and full adders both add binary bits, yet the carry-in sets them apart. A half adder adds two bits and ignores earlier carry, while a full adder adds a carry-in too, so it can chain into multi-bit adders.
So remember the rule: a half adder is the simple two-input building block, and a full adder is the three-input circuit that real arithmetic uses. With the truth tables and equations above, you can build either one with confidence.
Related reading on DiffStudy: