SLIDE 1 / 10
CSZone.co.uk
OCR H446 · Component 1 · 1.4.3

Adders & the
Arithmetic Logic Unit

OCR A Level Computer Science · cszone.co.uk
H446 SpecA Level
Learning Objectives

By the end of this topic you will be able to:

Describe the half adder: its inputs, outputs and Boolean expressions
Describe the full adder and how it extends the half adder
Explain how multiple adders are chained to add multi-bit numbers
Describe the role and components of the Arithmetic Logic Unit (ALU)
Half Adder

The Half Adder

A half adder adds two single bits (A and B) and produces two outputs: Sum (S) and Carry (C). It cannot accept a carry-in from a previous bit position.
Boolean Expressions
S = A ⊕ B    (XOR gate)
C = A · B    (AND gate)
Truth Table
ABS (Sum)C (Carry)
0000
0110
1010
1101
Full Adder

The Full Adder

A full adder adds three bits: A, B and a Carry-In (Cin) from the previous bit position. It produces Sum (S) and Carry-Out (Cout). Built from two half adders plus an OR gate.
Boolean Expressions
S = A ⊕ B ⊕ Cin
Cout = (A·B) + (Cin·(A⊕B))
Key rows from truth table
ABCinSCout
00000
11001
11111
Ripple Adder

Multi-bit Addition: Ripple Carry Adder

To add multi-bit binary numbers, multiple full adders are chained. The Carry-Out of each full adder becomes the Carry-In of the next more significant bit position. For the least significant bit, Cin = 0 (or a half adder is used).
Adding 0111 (7) + 0101 (5) using 4 full adders:
Bit 0: 1+1+Cin=0 → S=0, Cout=1
Bit 1: 1+0+Cin=1 → S=0, Cout=1
Bit 2: 1+1+Cin=1 → S=1, Cout=1
Bit 3: 0+0+Cin=1 → S=1, Cout=0
Result: 1100 = 12 ✓
The delay as carry ripples from LSB to MSB is called propagation delay — a limitation of the ripple carry adder. More advanced look-ahead carry adders avoid this.
ALU

The Arithmetic Logic Unit (ALU)

The ALU is the component within the CPU that performs arithmetic operations (addition, subtraction) and logical operations (AND, OR, NOT, XOR, bit shifts). It is a core part of the CPU's datapath.
ALU Inputs
• Two operands (from registers or memory)
• Operation select (from control unit)
• Carry-in flag (from status register)
ALU Outputs
• Result (to register or memory)
• Status flags: Zero (Z), Carry (C), Negative (N), Overflow (V) — stored in status/flags register, used for branching decisions
Exam Practice
OCR H446 Style · 4 marks
Explain the difference between a half adder and a full adder. State the Boolean expressions for both outputs of a full adder and explain why a full adder is needed to add multi-bit numbers.
[4 marks]
1
A half adder has two inputs (A, B) and two outputs (Sum, Carry). It cannot accept a carry-in from a previous bit.
1
A full adder has three inputs (A, B, Carry-in) allowing it to incorporate the carry produced by a less significant bit position.
1
Full adder expressions: S = A ⊕ B ⊕ Cin; Cout = (A·B) + (Cin·(A⊕B))
1
For multi-bit addition, each bit position may receive a carry from the position to its right. Only a full adder can accept this carry-in — a half adder would discard it, giving incorrect results for all bits except the least significant.
Common Mistakes

Don't Lose Marks

!
Saying the Sum output of a half adder uses an AND gate — the Sum output uses an XOR gate (A ⊕ B). The AND gate produces the Carry output. Swapping these is a very common error that fails the Boolean expression question.
!
Thinking the ALU only does arithmetic — the ALU performs both arithmetic (add, subtract, increment) and logical operations (AND, OR, NOT, XOR, bit shifts). The 'L' in ALU stands for Logic — always mention both types when describing the ALU.
!
Not explaining why carry-in matters in multi-bit adders — when adding multi-bit numbers, each bit position can receive a carry from the right. Without carry-in capability, carries would be lost, producing wrong results. This is the key reason full adders are needed.
1.4.3d Complete
Well done! ✓
Adders and the Arithmetic Logic Unit
Return to lesson to continue