| Topic (Paper 3) | Notes Included? | Assessment Objective(s) |
|---|---|---|
| Information representation (binary, octal, hexadecimal, BCD, ASCII/Unicode) | ✓ (new section) | AO1 – recall formats; AO2 – convert between bases |
| Hardware basics – CPU, registers, logic gates, Boolean algebra | ✓ (new section) | AO1, AO2 |
| Communication basics – LAN/WAN, topologies, protocols, IP, DNS | ✓ (new section) | AO1, AO2 |
| Floating‑point representation (IEEE‑754 single precision) | ✓ | AO1 – recall format; AO2 – analyse precision limits |
| Normalisation of binary numbers | ✓ (expanded) | AO1, AO2 |
| Rounding modes & precision loss | ✓ | AO2, AO3 – design code that selects a rounding mode |
| Arithmetic operations (add, subtract, multiply, divide) | ✓ (step‑by‑step) | AO2, AO3 – implement normalisation after an operation |
| Special values (zero, denormals, infinities, NaN) | ✓ | AO1, AO2 |
| Overflow & underflow handling | ✓ | AO2, AO3 – devise a safe‑guard routine |
| Gate | Symbol | Truth Table |
|---|---|---|
| NOT | ¬ | 0→1, 1→0 |
| AND | ∧ | 1 only when both inputs 1 |
| OR | ∨ | 1 when any input 1 |
| XOR | ⊕ | 1 when inputs differ |
| Field | Bits | Stored Value | Purpose |
|---|---|---|---|
| Sign (S) | 1 | 0 = positive, 1 = negative | Indicates the sign of the number |
| Exponent (E) | 8 | Unsigned integer with bias = 127 | Encodes the power of two |
| Fraction / Mantissa (F) | 23 | Bits after the leading 1 (the “hidden bit”) | Provides the significant digits |
The numerical value is
\[
\text{value}=(-1)^{S}\times 1.F \times 2^{E-\text{bias}}
\]
where 1.F means the hidden leading 1 followed by the fraction bits.
1.xxx… × 2k.storedExponent = k + bias (bias = 127 for single precision).Normalise 13.625 (single precision, bias = 127).
1101.101.1.101101 × 23.10000010.101101 followed by 17 zeros → 10110100000000000000000.Resulting 32‑bit pattern:
0 10000010 10110100000000000000000
Normalise -0.15625.
0.00101.1.01 × 2-3.01111100.010 followed by 20 zeros → 01000000000000000000000.Resulting 32‑bit pattern:
1 01111100 01000000000000000000000
During normalisation, any bits that fall off the 23‑bit fraction are examined to decide whether the retained mantissa must be incremented (round‑up) or left unchanged (round‑down).
Example: add A = 1.101 × 2³ and B = 1.001 × 2¹.
0.01001 × 2³.1.101 + 0.01001 = 10.11101.1.011101 × 2⁴ (left‑shift once, increase exponent).10000011.function normalize(mantissa, exponent):
// mantissa includes extra guard bits (at least 2)
while mantissa >= (1 << (FRAC_BITS+1)): // overflow → left shift
mantissa >>= 1
exponent += 1
while mantissa < (1 << FRAC_BITS): // leading 0 → right shift
mantissa <<= 1
exponent -= 1
// ---- rounding to nearest, ties‑to‑even ----
guard = mantissa & 0b11 // two least‑significant bits
mantissa >>= 2 // drop guard bits
if guard == 0b10 and (mantissa & 1): // tie → make even
mantissa += 1
elif guard > 0b10:
mantissa += 1
// check for a new overflow caused by rounding
if mantissa == (1 << (FRAC_BITS+1)):
mantissa >>= 1
exponent += 1
return mantissa & ((1 << FRAC_BITS)-1), exponent
Constants: FRAC_BITS = 23 for single precision.
When two nearly equal numbers are subtracted, the leading significant bits cancel, leaving only the less‑significant bits and dramatically reducing accuracy.
| Operation | Exact Decimal | IEEE‑754 (single) Result | Relative Error |
|---|---|---|---|
| 13.625 − 13.624 | 0.001 | 0.0009765625 (≈ 2⁻¹⁰) | ≈ 2 % error |
| 1.0000001 − 1.0000000 | 0.0000001 | 0 (underflow to zero) | 100 % loss |
Mitigation strategies (AO3):
E = 0, F = 0. Sign distinguishes +0 and –0.E = 0, F ≠ 0. Implicit leading bit is 0, allowing values smaller than the smallest normalised number.E = 255, F = 0. Represents overflow or division by zero.E = 255, F ≠ 0. Result of undefined operations (e.g., 0/0, √‑1).Typical safe‑guard routine (pseudocode):
if exponent > MAX_EXP: // 254
result = (sign ? -INF : INF)
elif exponent < MINNORMALEXP: // -126
shift = MINNORMALEXP - exponent
mantissa >>= shift // create denormal
exponent = 0
if mantissa == 0:
result = (sign ? -0.0 : 0.0)
| AO | What the Student Must Do |
|---|---|
| AO1 | Recall the binary, octal, hexadecimal, BCD, ASCII/Unicode formats; the IEEE‑754 layout; bias, hidden bit and special values. |
| AO2 | Convert between bases, normalise a given decimal number, analyse precision loss, identify overflow/underflow and explain hardware/communication relevance. |
| AO3 | Design short algorithms (pseudocode) that normalise a floating‑point result, choose a rounding mode, and handle overflow/underflow; propose a network‑topology choice for a given scenario. |
1 (except for denormals).Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources, past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.