Chapter 2
Encoding Schemes and Number System
2.1 Introduction
Have you ever thought how the keys on the computer keyboard that are in human recognisable form are interpreted by the computer system? This section briefly discusses text interpretation by the computer.
“We owe a lot to the Indians, who taught us how to count, without which no worthwhile scientific discovery could have been made.”
–Albert Einstein
We have learnt in the previous chapter that computer understands only binary language of 0s and 1s. Therefore, when a key on the keyboard is pressed, it is internally mapped to a unique code, which is further converted to binary.
- Example 2.1 When the key ‘A’ is pressed (Figure 2.1), it is internally mapped to a decimal value 65 (code value), which is then converted to its equivalent binary value for the computer to understand.

Figure 2.1: Encoding of data entered using keyboard
Similarly, when we press alphabet ‘अ’ on hindi keyboard, internally it is mapped to a hexadecimal value 0905, whose binary equivalent is 0000100100000101.
In this chapter
» Introduction to Encoding
» UNICODE
» Number System
» Conversion Between Number Systems
So what is encoding? The mechanism of converting data into an equivalent cipher using specific code is called encoding. It is important to understand why code value 65 is used for the key “A” and not any other value? Is it same for all the keyboards irrespective of their make?
Cipher means something converted to a coded form to hide/conceal it from others. It is also called encryption (converted to cipher) and sent to the receiver who in turn can decrypt it to get back the actual content.
Yes, it is same for all the keyboards. This has been possible because of standard encoding schemes where each letter, numeral and symbol is encoded or assigned a unique code. Some of the well-known encoding schemes are described in the following sections.
2.1.1 American Standard Code for Information Interchange (ASCII)
In the early 1960s, computers had no way of communicating with each other due to different ways of representing keys of the keyboard. Hence, the need for a common standard was realised to overcome this shortcoming. Thus, encoding scheme ASCII was developed for standardising the character representation. ASCII is still the most commonly used coding scheme.
Initially ASCII used 7 bits to represent characters. Recall that there are only 2 binary digits (0 or 1). Therefore, total number of different characters on the English keyboard that can be encoded by 7-bit ASCII code is 27 = 128. Table 2.1 shows some printable characters for ASCII code. But ASCII is able to encode character set of English language only.
Table 2.1 ASCII code for some printable characters
|
Character |
Decimal Value |
Character |
Decimal Value |
Character |
Decimal Value |
|
Space |
32 |
@ |
64 |
` |
96 |
|
! |
33 |
A |
65 |
a |
97 |
|
” |
34 |
B |
66 |
b |
98 |
|
# |
35 |
C |
67 |
c |
99 |
|
$ |
36 |
D |
68 |
d |
100 |
|
% |
37 |
E |
69 |
e |
101 |
|
& |
38 |
F |
70 |
f |
102 |
|
‘ |
39 |
G |
71 |
g |
103 |
|
( |
40 |
H |
72 |
h |
104 |
|
) |
41 |
I |
73 |
i |
105 |
Example 2.2 Encode the word DATA and convert the encoded value into binary values which can be understood by a computer.
• ASCII value of D is 68 and its equivalent 7-bit binary code = 1000100
• ASCII value of A is 65 and its equivalent 7-bit binary code = 1000001
• ASCII value of T is 84 and its equivalent 7-bit binary code = 1010100
• ASCII value of A is 65 and its equivalent 7-bit binary code = 1000001
Replace each alphabet in DATA with its ASCII code value to get its equivalent ASCII code and with 7-bit binary code to get its equivalent binary number as shown in Table 2.2.
Table 2.2 ASCII and Binary values for word DATA

2.1.2 Indian Script Code for Information Interchange (ISCII)
In order to facilitate the use of Indian languages on computers, a common standard for coding Indian scripts called ISCII was developed in India during mid 1980s. It is an 8-bit code representation for Indian languages which means it can represent 28=256 characters. It retains all 128 ASCII codes and uses rest of the codes (128) for additional Indian language character set. Additional codes have been assigned in the upper region (160– 255) for the ‘aksharas’ of the language.
Think and Reflect
Activity 2.1
Explore and list down two font names for typing in any three Indian languages in UNICODE.
2.1.3 UNICODE
There were many encoding schemes, for character sets of different languages. But they were not able to communicate with each other, as each of them represented characters in their own ways. Hence, text created using one encoding scheme was not recognised by another machine using different encoding scheme.
Think and Reflect
Why a character in UTF 32 takes more space than in UTF 16 or UTF 8?
Therefore, a standard called UNICODE has been developed to incorporate all the characters of every written language of the world. UNICODE provides a unique number for every character, irrespective of device (server, desktop, mobile), operating system (Linux, Windows, iOS) or software application (different browsers, text editors, etc.). Commonly used UNICODE encodings are UTF-8, UTF-16 and UTF-32. It is a superset of ASCII, and the values 0–128 have the same character as in ASCII. Unicode characters for Devanagari script is shown in Table 2.3. Each cell of the table contains a character along with its equivalent hexadecimal value.
Table 2.3 Unicode table for the Devanagari script
|
ऀ 0900 |
ँ 0901 |
ं 0902 |
ः 0903 |
ऄ 0904 |
अ 0905 |
आ 0906 |
इ 0907 |
ई 0908 |
उ 0909 |
ऊ 090A |
ऋ 090B |
ऌ 090C |
ऍ 090D |
ऎ 090E |
ए 090F |
|
ऐ 0910 |
ऑ 0911 |
ऒ 0912 |
ओ 0913 |
औ 0914 |
क 0915 |
ख 0916 |
ग 0917 |
घ 0918 |
ङ 0919 |
च 091A |
छ 091B |
ज 091C |
झ 091D |
ञ 091E |
ट 091F |
|
ठ 0920 |
ड 0921 |
ढ 0922 |
ण 0923 |
त 0924 |
थ 0925 |
द 0926 |
ध 0927 |
न 0928 |
ऩ 0929 |
प 092A |
फ 092B |
ब 092C |
भ 092D |
म 092E |
य 092F |
|
र 0930 |
ऱ 0931 |
ल 0932 |
ळ 0933 |
ऴ 0934 |
व 0935 |
श 0936 |
ष 0937 |
स 0938 |
ह 0939 |
ऺ 093A |
ऻ 093B |
़ 093C |
ऽ 093D |
ा 093E |
ि 093F |
|
ी 0940 |
ु 0941 |
ू 0942 |
ृ 0943 |
ॄ 0944 |
ॅ 0945 |
ॆ 0946 |
े 0947 |
ै 0948 |
ॉ 0949 |
ॊ 094A |
ो 094B |
ौ 094C |
् 094D |
ॎ 094E |
ॏ 094F |
|
ॐ 0950 |
॑ 0951 |
॒ 0952 |
॓ 0953 |
॔ 0954 |
ॕ 0955 |
ॖ 0956 |
ॗ 0957 |
क़ 0958 |
ख़ 0959 |
ग़ 095A |
ज़ 095B |
ड़ 095C |
ढ़ 095D |
फ़ 095E |
य़ 095F |
|
ॠ 0960 |
ॡ 0961 |
ॢ 0962 |
ॣ 0963 |
। 0964 |
॥ 0965 |
० 0966 |
१ 0967 |
२ 0968 |
३ 0969 |
४ 096A |
५ 096B |
६ 096C |
७ 096D |
८ 096E |
९ 096F |
|
॰ 0970 |
ऄ 0971 |
ऄ 0972 |
ॳ 0973 |
ॴ 0974 |
ॵ 0975 |
ॶ 0976 |
ॷ 0977 |
ॸ 0978 |
ॹ 0979 |
ॺ 097A |
ऄ 097B |
ऄ 097C |
ऄ 097D |
ऄ 097E |
ऄ 097F |
2.2 Number System
Till now, we have learnt that each key (representing character, special symbol, function keys, etc.) of the keyboard is internally mapped to an ASCII code following an encoding scheme. This encoded value is further converted to its equivalent binary representation so that the computer can understand it. In Figure 2.1, the code for character “A” belongs to the decimal number system and its equivalent binary value belongs to the binary number system. A number system is a method to represent (write) numbers.
Every number system has a set of unique characters or literals. The count of these literals is called the radix or base of the number system. The four different number systems used in the context of computer are shown in Figure 2.2. These number systems are explained in subsequent sections.

Figure 2.2: Four different number systems
Number systems are also called positional number system because the value of each symbol (i.e., digit and alphabet) in a number depends upon its position within the number. Number may also have a fractional part similar to decimal numbers used by us. The symbol at the right most position in the integer part in a given number has position 0. The value of position (also called position value) in the integer part increases from right to left by 1. On the other hand, the first symbol in the fraction part of the number has position number –1, which decreases by 1 while reading fraction part from left to right. Each symbol in a number has a positional value, which is computed using its position value and the base value of the number system. The symbol at position number 3 in a decimal system with base 10 has positional value 103. Adding the product of positional value and the symbol value results in the given number. Figure 2.3 shows the computation of decimal number 123.45 using its positional value.

Figure 2.3: Computation of decimal number using its positional value
2.2.1 Decimal Number System
The decimal number system is used in our day-to-day life. It is known as base-10 system since 10 digits (0 to 9) are used. A number is presented by its two values — symbol value (any digit from 0 to 9) and positional value (in terms of base value). Figure 2.4 shows the integer and fractional part of decimal number 237.25 alongwith computation of the decimal number using positional values.

Figure 2.4: Positional value for digits of decimal number represented as power of base 10
2.2.2 Binary Number System
The ICs (Integrated Circuits) in a computer are made up of a large number of transistors which are activated by the electronic signals (low/high) they receive. The ON/high and OFF/low state of a transistor is represented using the two digits 1 and 0, respectively. These two digits 1 and 0 form the binary number system. This system is also referred as base-2 system as it has two digits only. Some examples of binary numbers are 1001011, 1011.101, 111111.01. A binary number can be mapped to an equivalent decimal number that can be easily understood by the human.
Base value of a number system is used to distinguish a number in one number system from another number system. Base value is written as the subscript of the given number. For example, (70)8 represents 70 as octal number and (70)10 denotes 70 as decimal number.
Table 2.4 Binary value for (0–9) digits of decimal number system
|
Decimal |
Binary |
|
0 |
0 |
|
1 |
1 |
|
2 |
10 |
|
3 |
11 |
|
4 |
100 |
|
5 |
101 |
|
6 |
110 |
|
7 |
111 |
|
8 |
1000 |
|
9 |
1001 |
2.2.3 Octal Number System
With increase in the value of a decimal number, the number of bits (0/1) in its binary representation also increases. Sometimes, a binary number is so large that it becomes difficult to manage. Octal number system was devised for compact representation of the binary numbers. Octal number system is called base-8 system as it has total eight digits (0-7), and positional value is expressed in powers of 8. Three binary digits (8=23) are sufficient to represent any octal digit. Table 2.5 shows the decimal and binary equivalent of 8 octal digits. Examples of octal numbers are (237.05)8, (13)8, and (617.24)8.
Table 2.5 Decimal and binary equivalent of octal numbers 0 – 7
|
Octal Digit |
Decimal Value |
3 -bit Binary Number |
|
0 |
0 |
000 |
|
1 |
1 |
001 |
|
2 |
2 |
010 |
|
3 |
3 |
011 |
|
4 |
4 |
100 |
|
5 |
5 |
101 |
|
6 |
6 |
110 |
|
7 |
7 |
111 |
2.2.4 Hexadecimal Number System
Hexadecimal numbers are also used for compact representation of binary numbers. It consists of 16 unique symbols (0 – 9, A–F), and is called base-16 system. In hexadecimal system, each alphanumeric digit is represented as a group of 4 binary digits because 4 bits (24=16) are sufficient to represent 16 alphanumeric symbols. Note here that the decimal numbers 10 through 15 are represented by the letters A through F. Examples of Hexadecimal numbers are (23A.05)16, (1C3)16, (619B.A)16. Table 2.6 shows decimal and binary equivalent of 16 alphanumeric symbols used in hexadecimal number system.
Table 2.6 Decimal and binary equivalent of hexadecimal numbers 0–9, A–F
|
Hexadecimal Symbol |
Decimal Value |
4-bit Binary Number |
|
0 |
0 |
0000 |
|
1 |
1 |
0001 |
|
2 |
2 |
0010 |
|
3 |
3 |
0011 |
|
4 |
4 |
0100 |
|
5 |
5 |
0101 |
|
6 |
6 |
0110 |
|
7 |
7 |
0111 |
|
8 |
8 |
1000 |
|
9 |
9 |
1001 |
|
A |
10 |
1010 |
|
B |
11 |
1011 |
|
C |
12 |
1100 |
|
D |
13 |
1101 |
|
E |
14 |
1110 |
|
F |
15 |
1111 |
2.2.5 Applications of Hexadecimal Number System
Table 2.7 Colour codes in decimal, binary
and hexadecimal numbers

2.3 Conversion between Number Systems
In the previous section, we learnt about different number systems used in computers. Now, let us learn how to convert a number from one number system to another number system for better understanding of the number representation in computers. Decimal number system is most commonly used by humans, but digital systems understand binary numbers; whereas Octal and hexadecimal number systems are used to simplify the binary representation for us to understand.
Activity 2.2
Convert the following decimal numbers in the form understood by computer.
(i) (593)10 (ii) (326)10 (iii) (79)10
2.3.1 Conversion from Decimal to other Number Systems
To convert a decimal number to any other number system (binary, octal or hexadecimal), use the steps given below.
Step 1: Divide the given number by the base value (b) of the number system in which it is to be converted
Step 2: Note the remainder
Step 3: Keep on dividing the quotient by the base value and note the remainder till the quotient is zero
Step 4: Write the noted remainders in the reverse order (from bottom to top)
(A) Decimal to Binary Conversion
Since the base value of binary system is 2, the decimal number is repeatedly divided by 2 following the steps given in above till the quotient is 0. Record the remainder after each division and finally write the remainders in reverse order in which they are computed.
In Figure 2.1 you saw that the binary equivalent of 65 is (1000001)2. Let us now convert a decimal value to its binary representation and verify that the binary equivalent of (65)10 is (1000001)2.
Activity 2.3
Express the following decimal numbers into octal numbers.
(i) (913)10
(ii) (845)10
(iii) (66)10

Figure 2.5: Conversion of a decimal number to its equivalent binary number
Binary Number to Decimal Number

(B) Decimal to Octal Conversion
Since the base value of octal is 8, the decimal number is repeatedly divided by 8 to obtain its equivalent octal number.

Figure 2.6: Conversion of a decimal number to its equivalent octal number
The octal equivalent of letter “A” by using its ASCII code value (65)10 is calculated as shown in Figure 2.6.

Therefore, (122)10= (172)8
(C) Decimal to Hexadecimal Conversion
Since the base value of hexadecimal is 16, the decimal number is repeatedly divided by 16 to obtain its equivalent hexadecimal number. The hexadecimal equivalent of letter ‘A’ using its ASCII code (65)10 is calculated as shown in Figure 2.7.

Figure 2.7: Conversion of a decimal number to its equivalent hexadecimal number
Example 2.5 Convert (122)10 to hexadecimal number.

Therefore, (122)10=(7A)16
2.3.2 Conversion from other Number Systems to Decimal Number System
We can use the following steps to convert the given number with base value b to its decimal equivalent, where base value b can be 2, 8 and 16 for binary, octal and hexadecimal number system, respectively.
Step 1: Write the position number for each alphanumeric symbol in the given number
Step 2: Get positional value for each symbol by raising its position number to the base value b symbol in the given number
Step 3: Multiply each digit with the respective positional value to get a decimal value
Step 4: Add all these decimal values to get the equivalent decimal number
Activity 2.4
Convert the following numbers into decimal numbers.
(i) (110101)2
(ii) (1703)8
(iii) (COF5)16
A) Binary Number to Decimal Number
Since binary number system has base 2, the positional values are computed in terms of powers of 2. Using the above mentioned steps we can convert a binary number to its equivalent decimal value as shown below:

(B) Octal Number to Decimal Number
The following example shows how to compute the decimal equivalent of an octal number using base value 8.

Why 3 bits in a binary number are grouped together to get octal number?
The base value of octal number system is 8. Convert value 8 in terms of exponent of 2, i.e., 8=23. Hence, three binary digits are sufficient to represent all 8 octal digits.
Simply stated, count all possible combinations of three binary digits, which are 2x2x2=8. Therefore, 3 bits are sufficient to represent any octal digit. Hence, 3-bit groups in a binary number are formed to get equivalent octal number.
(C) Hexadecimal Number to Decimal Number
For converting a hexadecimal number into decimal number, use steps given in this section with base value 16 of hexadecimal number system. Use decimal value equivalent to alphabet symbol of hexadecimal number in the calculation, as shown in Table 2.6.
2.3.3 Conversion from Binary Number to Octal/Hexadecimal Number and Vice-Versa
A binary number is converted to octal or hexadecimal number by making groups of 3 and 4 bits, respectively, and replacing each group by its equivalent octal/hexadecimal digit.
(A) Binary Number to Octal Number
Given a binary number, an equivalent octal number represented by 3 bits is computed by grouping 3 bits from right to left and replacing each 3-bit group by the corresponding octal digit. In case number of bits in a binary number is not multiple of 3, then add required number of 0s on most significant position of the binary number.
Example 2.9 Convert (10101100)2 to octal number.
Make group of 3-bits of the given binary number (right to left) 010 101 100
Write octal number for each 3-bit group 2 5 4
Therefore, (10101100)2 = (254)8
Why 4 bits in a binary number are grouped together to get hexadecimal number?
The base value of hexadecimal number system is 16. Write value 16 in terms of exponent of 2 i.e. 16 = 24. Hence, four binary digits are sufficient to represent all 16 hexadecimal symbols.
(B) Octal Number to Binary Number
Each octal digit is an encoding for a 3-digit binary number. Octal number is converted to binary by replacing each octal digit by a group of three binary digits.

Think and Reflect
While converting the fractional part of a decimal number to another number system, why do we write the integer part from top to bottom and not other way?
(C) Binary Number to Hexadecimal Number
Given a binary number, its equivalent hexadecimal number is computed by making a group of 4 binary digits from right to left and substituting each 4-bit group by its corresponding hexadecimal alphanumeric symbol. If required, add 0 bit on the most significant position of the binary number to have number of bits in a binary number as multiple of 4.

Therefore, (0110101100)2 = (1AC)16
(D) Hexadecimal Number to Binary Number
Each hexadecimal symbol is an encoding for a 4-digit binary number. Hence, the binary equivalent of a hexadecimal number is obtained by substituting 4-bit binary equivalent of each hexadecimal digit and combining them together.

Therefore, (23D)16 = (001000111101)2
Activity 2.5
Write binary representation of the following numbers.
(i) (F018)16
(ii) (172)16
(iii) (613)8
2.3.4 Conversion of a Number with Fractional Part
Till now, we largely dealt with different conversions for whole number. In this section, we will learn about conversion of numbers with a fractional part.
(A) Decimal Number with Fractional Part to another Number System
To convert the fractional part of a decimal number to another number system with base value b, repeatedly multiply the fractional part by the base value b till the fractional part becomes 0. Use integer part from top to bottom to get equivalent number in that number system. If the fractional part does not become 0 in successive multiplication, then stop after, say 10 multiplications. In some cases, fractional part may start repeating, then stop further calculation.

Since the fractional part is 0, the multiplication is stopped. Write the integer part from top to bottom to get binary number for the fractional part.
Therefore, (0.25)10 = (0.01)2

Since the fractional part (.400) is the repeating value in the calculation, the multiplication is stopped. Write the integer part from top to bottom to get binary number for the fractional part.
Therefore, (0.675)10= (0.1010110)2

Since the fractional part (.400) is repeating, the multiplication is stopped. Write the integer part from top to bottom to get octal number for the fractional part.
Therefore, (0.675)10= (0.53146)8

Since the fractional part (.800) is repeating, the multiplication is stopped. Write the integer part from top to bottom to get hexadecimal equivalent for the fractional part.
Therefore, (0.675)10=(0. AC)16
(B) Non-decimal Number with Fractional Part to Decimal Number System
Compute positional value of each digit in the given number using its base value. Add the product of positional value and the digit to get the equivalent decimal number with fractional part.

Therefore, (100101.101)2= (37.625)10

(C) Fractional Binary Number to Octal or Hexadecimal Number
To convert the fractional binary number into octal or hexadecimal value, substitute groups of 3-bit or 4-bit in integer part by the corresponding digit. Similarly, make groups of 3-bit or 4-bit for fractional part starting from left to right, and substitute each group by its equivalent digit or symbol in Octal or Hexadecimal number system. Add 0s at the end of the fractional part to make a perfect group of 3 or 4 bits.

Therefore, (10101100.010111)2 = (AC.5C)16.
Note: Make 3-bit groups from right to left for the integer part and left to right for the fractional part.

Therefore, (10101100.010111)2 = (AC.5C)16
Summary
• Encoding scheme maps text into the codes that facilitate communication among computers.
• Textual data is encoded using ASCII, ISCII or Unicode.
• Unicode scheme is a character encoding standard which can encode all the characters of almost all languages of the world.
• Computer being a digital system understands only binary numbers which are 0 and 1.
• Encoded text is converted to binary form for processing by the computer.
• Octal and hexadecimal number systems are used to simplify the binary coded representation as they allow grouping of 3 or 4 bits of binary numbers each, respectively.
