← IGCSE Computer Science Paper 1

Comparing ASCII and Unicode

Unicode supports far more characters than 8-bit ASCII but uses 16 or 32 bits per character, so the same text takes up more storage space.

Understanding Comparing ASCII and Unicode in IGCSE Computer Science Paper 1

What it does: More bits per character means more possible codes, so Unicode can cover many languages and emoji. Doubling the bits per character doubles the file size for the same text. The extra bits needed to represent more characters increase the storage used. ASCII has a small character set, but that is enough for English and keeps files small.

Common mistakes: ASCII uses 8 bits per character, so 5 characters need 5 * 8 bits. 16 bits per character is a Unicode size, not ASCII. 8-bit ASCII can only represent 2 ^ 8 = 256 characters. 2 ^ 32 is far too large and would make ASCII bigger than Unicode.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 43–58) and word search (Modules 28–58).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
Which character set can represent characters from many languages and emoji?
ASCIIUnicode
Matches
Unicode text files are smaller than ASCII text files
↓
Unicode uses more bits per character, so the same text makes a larger file, not a smaller one
Applying
Meanings
Term
Unicode vs ASCII
Meaning
Unicode supports far more characters than 8-bit ASCII but uses 16 or 32 bits per character, so the same text takes up more storage space.
Practice
text = "Hello World"
Testing
Gaps
asciiBits = 100 *
Check Answer
Spots
1text ← "HELLO"
2asciiBits ← 5 * 16

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Fox' badge — Cunning Debugger, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. Which character set can represent characters from many languages and emoji?
A. ASCII
B. Unicode ✓
Unicode has a huge range of characters, including many languages and emoji. ASCII only covers basic English characters.
2. How many bits does each character use in 8-bit ASCII?
A. 8 bits per character ✓
B. 16 bits per character
This module uses 8-bit ASCII, so every character takes 8 bits (1 byte). Unicode uses 16 or 32 bits per character.
3. A text has 100 characters. Which format gives the larger file?
A. Unicode with 16 bits per character (1600 bits) ✓
B. ASCII with 8 bits per character (800 bits)
More bits per character means more storage. 100 x 16 = 1600 bits, but 100 x 8 = 800 bits.
4. Why can Unicode support far more characters than ASCII?
A. It uses more bits for each character, so there are more possible codes ✓
B. It uses fewer bits for each character, so the codes are shorter
More bits give more different binary patterns, so there are more possible character codes. Unicode uses 16 or 32 bits.
5. A short English-only message needs to be stored using as little space as possible. Which is the better choice?
A. Unicode, because it always makes files smaller
B. ASCII, because it needs fewer bits per character ✓
English-only text needs only the basic characters in ASCII. Using 8 bits per character instead of 16 or 32 keeps the file smaller.

Match the Pairs

ASCII: 8 bits per character → Each character is stored in one byte, so a 100-character English text needs 800 bits
Unicode: 16 or 32 bits per character → Each character takes two or four bytes, so the same text uses more storage than in ASCII
Unicode supports far more characters than ASCII, including emoji and other alphabets → Unicode: over 140000 characters, ASCII: 256 characters
The same 100-character message takes twice the storage in 16-bit Unicode as in 8-bit ASCII → 100 x 8 = 800 bits, 100 x 16 = 1600 bits
Unicode text files are smaller than ASCII text files → Unicode uses more bits per character, so the same text makes a larger file, not a smaller one
ASCII is used for English-only text because it can show emoji → ASCII cannot show emoji; it is used for English-only text because it needs fewer bits and so saves storage

Key Term

Unicode vs ASCII
Unicode supports far more characters than 8-bit ASCII but uses 16 or 32 bits per character, so the same text takes up more storage space.

Fill in the Blanks

1. asciiBits = 100 * 8
Hint: Type the number of bits that each ASCII character uses.
2. // UTF-32 uses 4 bytes per character unicodeBits = 100 * 32
Hint: Type the number of bits in 4 bytes, the size of each character in this Unicode version.
3. IF unicodeBits > asciiBits THEN OUTPUT "Unicode file is bigger" ENDIF
Hint: Type the comparison operator that checks whether the Unicode size is greater than the ASCII size.
4. asciiChars = 2 ^ 8 unicodeChars = 2 ^ 16
Hint: Type the number of bits that gives 65536 different characters, far more than ASCII.
5. unicodeBits = LENGTH("Hello") * 16
Hint: Type the function name that counts how many characters are in the text.

Spot the Error

Question 1
A text ← "HELLO"
B asciiBits ← 5 * 16
C unicodeBits ← 5 * 32
D OUTPUT unicodeBits - asciiBits
Line B — ASCII uses 8 bits per character, so 5 characters need 5 * 8 bits. 16 bits per character is a Unicode size, not ASCII.
Question 2
A maxAscii ← 2 ^ 32
B maxUnicode ← 2 ^ 16
C OUTPUT maxUnicode > maxAscii
Line A — 8-bit ASCII can only represent 2 ^ 8 = 256 characters. 2 ^ 32 is far too large and would make ASCII bigger than Unicode.
Question 3
A text ← "Hi"
B asciiSize ← LENGTH(text) * 8
C uniSize ← LENGTH(text) * 8
D OUTPUT uniSize > asciiSize
Line C — Unicode uses 16 or 32 bits per character, not 8. It should be LENGTH(text) * 32 (or 16), which is why Unicode text takes more storage.
Question 4
A IF onlyEnglish = FALSE THEN
B encoding ← "ASCII"
C ELSE
D encoding ← "Unicode"
E ENDIF
Line A — ASCII is still used when text is English-only because it needs fewer bits. The condition should be onlyEnglish = TRUE.
Question 5
A emoji ← TRUE
B IF emoji = TRUE THEN
C encoding ← "ASCII"
D ELSE
E encoding ← "ASCII"
F ENDIF
Line C — Emoji are not in the ASCII character set, which only has 256 characters. Text with emoji needs Unicode, so this should be "Unicode".

Student with a class code? Join your class →