Pro Content

Upgrade to access all Cambridge 9618 lessons including floating point representation, normalisation and precision/range trade-offs.

Upgrade to Pro →
← Back to Dashboard
📘 Paper 3 · 3.1 Data Representation
3.1.3 Floating Point Representation
Cambridge 9618 · International A Level Computer Science · ~20 min read
Notes
Video
Slides
Quiz
Worksheet

The Structure of a Floating Point Number

A floating point number is stored in two parts: a mantissa (the significant digits) and an exponent (the scale/power). Both are stored in two's complement binary in Cambridge 9618.

The value of the number is: value = mantissa × 2exponent

The binary point in the mantissa is assumed to be immediately after the sign bit. Example layout for 8-bit mantissa + 4-bit exponent:

Mantissa (8 bits) — two's complement, binary point after sign bit
0
1
0
0
1
0
0
0
sign . fraction bits
Exponent (4 bits) — two's complement
0
0
1
1
= +3

Converting Floating Point to Decimal

Follow these steps:

Worked Example: Convert 0.1001000 with exponent 0011 to decimal
1
Read the exponent: 0011 (two's complement) = +3. This tells us to move the binary point 3 places right in the mantissa.
2
Mantissa in full: 0.1001000 (binary point after the sign bit 0)
3
Shift binary point right by 3: 0.1001000 → 0100.100 = 0100.1 in binary
4
Convert 0100.1 to decimal: 4 + 0.5 = 4.5
Worked Example: Convert 1.1100000 with exponent 0010 to decimal (negative number)
1
Sign bit is 1 → this is a negative number in two's complement.
2
Exponent: 0010 = +2. Shift binary point 2 places right.
3
Shift: 1.1100000 → 111.00000
4
Convert two's complement 111 to decimal: Invert → 000, add 1 → 001 = 1. Since negative: −1

Normalisation

A floating point number is normalised when the mantissa uses the maximum number of significant bits — no leading redundant bits. The rule depends on the sign of the number:

Positive number — normalised form:
The bit immediately after the binary point must be 1.
Mantissa starts: 0.1xxxxxxx
Example: 0.1001000 ✓ (normalised)   |   0.0100100 ✗ (not normalised — leading zero wastes precision)
Negative number — normalised form:
The bit immediately after the binary point must be 0.
Mantissa starts: 1.0xxxxxxx
Example: 1.0110000 ✓ (normalised)   |   1.1011000 ✗ (not normalised — redundant sign extension)

Why normalise?

Normalisation ensures every representable value has exactly one bit pattern. This maximises precision — a non-normalised number wastes mantissa bits on redundant leading 0s or 1s when those bits could represent more significant digits.

How to normalise a non-normalised number

Normalise: mantissa = 0.0100100, exponent = 0100 (positive)
1
The bit after the binary point is 0 — not normalised for a positive number. Need to shift mantissa left.
2
Shift mantissa left by 1: 0.0100100 → 0.1001000. Decrease exponent by 1: 0100 → 0011 (to compensate).
3
Check: 0.1001000 with exponent 0011 → bit after point is 1 ✓ — now normalised. Value unchanged.

Precision vs Range Trade-off

With a fixed total number of bits, the programmer (or system designer) must divide bits between mantissa and exponent:

ChangeEffect on PrecisionEffect on Range
More bits in mantissaMore significant digits → higher precision (less rounding error)Fewer exponent bits → smaller range of values representable
More bits in exponentFewer mantissa bits → less precision (more rounding error)Larger range of values (very large and very small numbers)

Precision

Precision refers to how many significant bits are stored — how exactly the actual value can be represented. More mantissa bits = less rounding error. Example: 0.1001001 (7 mantissa bits) is less precise than a 16-bit mantissa representation of the same value.

Range

Range refers to the largest and smallest values the exponent can represent. A 4-bit two's complement exponent gives −8 to +7 → values from very small (×2⁻⁸) to very large (×2⁷). More exponent bits allows extreme values like 2127 (single-precision IEEE 754).

Overflow and Underflow

ErrorCauseEffect
OverflowResult is too large in magnitude for the exponent to representProgram error / incorrect result; some systems use ±infinity
UnderflowNumber is too close to zero (absolute value too small for exponent)Number is rounded to zero — a small but non-zero value is lost
Cambridge 9618 normalisation rules to memorise: Positive → starts 0.1xxxxxxx; Negative → starts 1.0xxxxxxx. To normalise, shift mantissa and adjust exponent by the same amount in opposite direction. More mantissa bits = better precision. More exponent bits = wider range. Overflow = result too large for exponent; Underflow = result too small (rounds to zero).
⚠️ Common Mistakes
  • Applying positive normalisation rule to negative numbers — positive starts 0.1... but negative starts 1.0... (not 1.1...)
  • Forgetting to adjust the exponent when shifting the mantissa during normalisation — value must stay the same
  • Confusing precision and range — precision relates to mantissa bits; range relates to exponent bits
  • Confusing overflow (too large) with underflow (too close to zero) — underflow does NOT mean the answer is negative
  • Treating the exponent as an unsigned integer — it is two's complement, so 1110 = −2, not 14
  • Forgetting the implicit binary point position — it comes after the sign bit of the mantissa
✅ Notes completed!
Video coming soon
Click slide or press arrow keys to navigate

Worksheet — 3.1.3 Floating Point Representation

8 questions · Cambridge 9618 standard

Q1A floating point number has mantissa 0.1011000 and exponent 0010 (both two's complement, binary point after sign bit). Convert this to denary.[3]
✅ Mark scheme
Exponent 0010 = +2 [1]; shift binary point 2 places right: 0.1011000 → 010.11000 [1]; convert 010.11 = 2 + 0.5 + 0.25 = 2.75 [1].
Q2State the normalisation rule for (a) a positive floating point number and (b) a negative floating point number.[2]
✅ Mark scheme
(a) Positive: the bit immediately after the binary point must be 1 — mantissa starts 0.1xxxxxx [1]; (b) Negative: the bit immediately after the binary point must be 0 — mantissa starts 1.0xxxxxx [1].
Q3Is the floating point number with mantissa 0.0110100 and exponent 0101 normalised? If not, write the normalised form and state the new exponent.[3]
✅ Mark scheme
Not normalised — positive number but bit after binary point is 0 (not 1) [1]; shift mantissa left by 1: 0.0110100 → 0.1101000 [1]; decrease exponent by 1: 0101 → 0100 (= +4) [1]. New normalised form: mantissa 0.1101000, exponent 0100.
Q4A 16-bit floating point format uses 12 bits for the mantissa and 4 bits for the exponent. State what would happen to precision and range if the format were changed to 10 bits for mantissa and 6 bits for exponent.[4]
✅ Mark scheme
Precision decreases — fewer mantissa bits (10 instead of 12) means fewer significant digits can be stored, increasing rounding errors [2]; range increases — more exponent bits (6 instead of 4) means larger and smaller numbers can be represented [2].
Q5Explain the difference between floating point overflow and floating point underflow.[2]
✅ Mark scheme
Overflow occurs when the result of a calculation is too large in magnitude for the exponent to represent — the number is outside the maximum range [1]; underflow occurs when the result is too close to zero — the absolute value is too small for the exponent to represent, so it is rounded down to zero [1].
Q6A negative floating point number has mantissa 1.1010000 and exponent 1111 (both two's complement). What decimal value does this represent?[4]
✅ Mark scheme
Exponent 1111 in two's complement = −1 [1]; shift binary point 1 place LEFT (negative exponent): 1.1010000 → 1 1.010000... — actually the mantissa represents a negative value: 1.1010000. Two's complement of 11010000: invert = 00101111, add 1 = 00110000 = 0.0110000 in binary point notation = 0.1875; so mantissa = −0.1875 [1]; with exponent −1: value = −0.1875 × 2⁻¹ = −0.1875 ÷ 2 = −0.09375 [2]. Accept correct intermediate steps for method marks.
Q7A floating-point number uses 8-bit mantissa (two's complement, normalised) and 4-bit exponent (two's complement). The bit pattern is: mantissa = 0.1011010, exponent = 0101. Calculate the denary value represented. Show all working.[4]
✅ Mark scheme
Mantissa 0.1011010 in binary = 0 + 1×2⁻¹ + 0×2⁻² + 1×2⁻³ + 1×2⁻⁴ + 0×2⁻⁵ + 1×2⁻⁶ + 0×2⁻⁷ = 0.5 + 0.125 + 0.0625 + 0.015625 = 0.703125 [1]; Exponent 0101 = +5 (positive two's complement) [1]; Actual value = mantissa × 2^exponent = 0.703125 × 2⁵ [1]; = 0.703125 × 32 = 22.5 [1].
Q8Explain what underflow and overflow mean in the context of floating-point representation. State one consequence of each, and explain why increasing the number of exponent bits reduces the risk of overflow but does not eliminate rounding errors.[5]
✅ Mark scheme
Overflow: result is too large to be represented — the exponent required exceeds the maximum representable value [1]; consequence: the value may wrap around to a very small or negative value, or the program raises an error [1]; Underflow: result is too close to zero (too small) to be represented — the exponent required is smaller than the minimum [1]; consequence: the value is rounded to zero, losing precision [1]; More exponent bits extend the range of representable magnitudes, reducing overflow/underflow risk [1]; but rounding errors arise from limited mantissa bits — not exponent bits — so increasing exponent bits does not reduce the fractional precision of the mantissa [1]. Award max 5.
Topic Quiz
Question 1 of 10
You scored
out of 10
Card 1 of 8
Click to reveal definition
🎉
All cards reviewed!
TermDefinition
🎯

Mini Test — 3.1.3 Floating Point

10 questions · 10 marks · 10 minutes

← 3.1.2 File Organisation
53 of 82 · Cambridge 9618
3.1.4 Data Compression →