On this page
Encoding schemes are a small topic in Class 11 computer science, but the questions go deeper than "what does ASCII stand for". You may be asked why ASCII cannot store Hindi, how many characters a scheme can hold, or how many bytes a word takes in UTF-8 against UTF-32. This post answers each with working you can show in the exam.
What does the CBSE syllabus ask?
The CBSE Computer Science curriculum for 2026-27 lists "Encoding Schemes: ASCII, ISCII, and Unicode (UTF8, UTF32)" in Unit 1, Computer Systems and Organisation, which carries 10 of the 70 theory marks in Class 11. The matching NCERT chapter is Encoding Schemes and Number System. Check the curriculum for your year before the exam.
Why does the number of bits fix the number of characters?
Each bit has two values, so n bits give 2ⁿ different codes.
ASCII. NCERT says ASCII initially used 7 bits, so it can encode 2⁷ = 128 characters, enough for the English keyboard only. The letter A is 65, which is 1000001 in 7-bit binary.
ISCII. NCERT says ISCII was developed in India in the mid-1980s as an 8-bit code, so it can represent 2⁸ = 256 characters. It keeps all 128 ASCII codes and uses the other 128 for Indian language characters, with the aksharas placed in the upper region, 160 to 255.
Unicode. Different schemes could not read each other's text. Unicode gives a unique number to every character of every written language, whatever the device, operating system or software. It is a superset of ASCII: the ASCII values keep the same characters.
What is the difference between Unicode, UTF-8 and UTF-32?
Unicode is the list of numbers, called code points, written like U+0905 for the Devanagari letter अ. UTF-8 and UTF-32 are two ways of storing those numbers as bytes. The Unicode Consortium's FAQ says that depending on the encoding form, each character is stored as a sequence of one to four 8-bit bytes (UTF-8), one or two 16-bit code units (UTF-16) or a single 32-bit code unit (UTF-32).
UTF-8's rules are set out in RFC 3629:
U+0000 to U+007F: 1 byte, 0xxxxxxx
U+0080 to U+07FF: 2 bytes, 110xxxxx 10xxxxxx
U+0800 to U+FFFF: 3 bytes, 1110xxxx 10xxxxxx 10xxxxxx
U+10000 to U+10FFFF: 4 bytes
So ASCII text is unchanged in UTF-8: one byte per character, with the same values.
Worked example: encode अ in UTF-8 by hand
NCERT's Devanagari table gives अ as hexadecimal 0905.
Pick the row. 0905 lies between 0800 and FFFF, so UTF-8 needs 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx.
Write 0905 in 16 bits. 0 = 0000, 9 = 1001, 0 = 0000, 5 = 0101, so 0000 1001 0000 0101.
Split into 4, 6 and 6 bits. 0000 | 100100 | 000101.
Fill the templates. 1110 0000, 10 100100, 10 000101.
Convert to hex. 11100000 = E0, 10100100 = A4, 10000101 = 85.
अ in UTF-8 is E0 A4 85: three bytes. In UTF-32 it is 00 00 09 05: four bytes.
Worked example: how many bytes does a string take?
Take "Fermi भारत", which is 10 characters: 5 Latin letters, 1 space and 4 Devanagari characters (भ, the vowel sign ा, र, त).
ASCII: cannot store it at all, because ASCII has no Devanagari characters.
UTF-8: 6 ASCII characters × 1 byte + 4 Devanagari characters × 3 bytes = 6 + 12 = 18 bytes.
UTF-32: 10 characters × 4 bytes = 40 bytes.
This answers NCERT's margin question about why UTF-32 takes more space: it spends four bytes even on characters that fit in one.
How can you check your answers in Python?
Python strings are sequences of Unicode code points, and str.encode() uses UTF-8 by default:
s = "Fermi भारत"
print(len(s)) # 10 characters
print(len(s.encode())) # 18 bytes in UTF-8
print(len(s.encode("utf-32-be"))) # 40 bytes in UTF-32
print("अ".encode().hex(" ")) # e0 a4 85
print(ord("A"), hex(ord("अ"))) # 65 0x905Use this to check practice answers; in the exam, show the working. The same ord() and chr() functions come back in strings in Python, and the binary and hex conversions used here are covered in binary, octal and hexadecimal for CBSE. If bit patterns still feel abstract, the Fermi Concept Library covers every concept in computing as well as physics, chemistry, biology and mathematics, each with its own lesson.
Which mistakes cost marks?
Calling Unicode an encoding size. Unicode is the numbering; UTF-8 and UTF-32 are the storage forms.
Saying UTF-8 always uses 8 bits per character. It uses 8 to 32.
Forgetting that ISCII keeps ASCII. Its first 128 codes are the ASCII ones.
Mixing 2⁷ and 2⁸. ASCII (7-bit) is 128; ISCII (8-bit) is 256.
A short practice routine
Write the four UTF-8 byte templates from memory.
Encode आ (NCERT gives 0906) in UTF-8 by hand, then check with Python.
Count UTF-8 and UTF-32 bytes for your own name in English and in an Indian script.
Tonight, encode one character from your own language by hand and check it with three lines of Python.



