Types of codes
BCD (Binary-Coded Decimal) code :
- Four-bit code that represents one of the ten decimal digits from 0 to 9.
- Example – (37)_{10} is represented as 0011 0111 using BCD code, rather than (100101)_{2} in straight binary code.
- Thus BCD code requires more bits than straight binary code.
- Still it is suitable for input and output operations in digital systems.
Note: 1010, 1011, 1100, 1101, 1110, and 1111 are INVALID CODE in BCD code.
ASCII (American Standard Code Information Interchange) code :
- It is 7-bit or 8-bit alphanumeric code.
- 7-bit code is standard ASCII supports 127 characters.
- Standard ASCII series starts from 00h to 7Fh, where 00h-1Fh are used as control characters and 20h-7Fh as graphics symbols.
- 8-bit code is extended ASCII supports 256 symbols where special graphics and math’s symbols are added.
- Extended ASCII series starts from 80h to FFh.
EBCDIC (Extended Binary Coded Decimal Interchange Code) code
- 8-bit alphanumeric code developed by IBM, supports 256 symbols.
- It was mainly used in IBM mainframe computers.
Gray code
- Differs from leading and following number by a single bit.
- Gray code for 2 is 0011 and for 3 is 0010.
- No weights are assigned to the bit positions.
- Extensively used in shaft encoders.
Excess-3 code
- 4-bit code is obtained by adding binary 0011 to the natural BCD code of the digit.
- Example – decimal 2 is coded as 0010 + 0011 = 0101 as Excess-3 code.
- It not weighted code.
- Its self-complimenting code, means 1’s complement of the coded number yields 9’s complement of the number itself.
- Used in digital system for performing substraction operations.
Table listing Binary, Gray, BCD and Express-3 Coding for Decimal Digits
Converting Binary to Gray Code –
Binary-To-Decimal Conversion
Any binary number can be converted to its decimal equivalent simply by summing together the weights of the various positions in the binary number which contain a 1.
Binary | Decimal |
11011_{2} | |
2^{4} + 2^{3}+0^{1}+2^{1}+2^{0} | =16+8+0+2+1 |
Result | 27_{10} |
And
Binary | Decimal |
10110101_{2} | |
2^{7}+0^{6}+2^{5}+2^{4}+0^{3}+2^{2}+0^{1}+2^{0} | =128+0+32+16+0+4+0+1 |
Result | 181_{10} |
You should have noticed that the method is to find the weights (i.e., powers of 2) for each bit position that contains a 1, and then to add them up.
Decimal-To-Binary Conversion
There are 2 methods:
· Reverse of Binary-To-Decimal Method
· Repeat Division
Reverse of Binary-To-Decimal Method
Decimal | Binary |
45_{10} | =32 + 0 + 8 + 4 +0 + 1 |
=2^{5}+0+2^{3}+2^{2}+0+2^{0} | |
Result | = 101101_{2} |
Repeat Division-Convert decimal to binary
This method uses repeated division by 2.
Convert 25_{10} to binary
Division | Remainder | Binary |
25/2 | = 12+ remainder of 1 | 1 (Least Significant Bit) |
12/2 | = 6 + remainder of 0 | 0 |
6/2 | = 3 + remainder of 0 | 0 |
3/2 | = 1 + remainder of 1 | 1 |
1/2 | = 0 + remainder of 1 | 1 (Most Significant Bit) |
Result | 25_{10} | = 11001_{2} |
Binary-To-Octal / Octal-To-Binary Conversion
Octal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Each Octal digit is represented by three binary digits.
Example:
100 111 010_{2} = (100) (111) (010)_{2} = 4 7 2_{8}
Repeat Division-Convert decimal to octal
This method uses repeated division by 8.
Example: Convert 177_{10} to octal and binary
Division | Result | Binary |
177/8 | = 22+ remainder of 1 | 1 (Least Significant Bit) |
22/8 | = 2 + remainder of 6 | 6 |
2/8 | = 0 + remainder of 2 | 2 (Most Significant Bit) |
Result | 177_{10} | = 261_{8} |
Binary | = 010110001_{2} |
Hexadecimal to Decimal/Decimal to Hexadecimal Conversion
Example:
2AF_{16} = 2 x (16^{2}) + 10 x (16^{1}) + 15 x (16^{0}) = 687_{10}
Repeat Division- Convert decimal to hexadecimal
This method uses repeated division by 16.
Example: convert 378_{10} to hexadecimal and binary:
Division | Result | Hexadecimal |
378/16 | = 23+ remainder of 10 | A (Least Significant Bit)23 |
23/16 | = 1 + remainder of 7 | 7 |
1/16 | = 0 + remainder of 1 | 1 (Most Significant Bit) |
Result | 378_{10} | = 17A_{16} |
Binary | = 0001 0111 1010_{2} |
Binary-To-Hexadecimal /Hexadecimal-To-Binary Conversion
Hexadecimal Digit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Binary Equivalent | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
Hexadecimal Digit | 8 | 9 | A | B | C | D | E | F |
Binary Equivalent | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Each Hexadecimal digit is represented by four bits of binary digit.
Example:
1011 0010 1111_{2} = (1011) (0010) (1111)_{2} = B 2 F_{16}
Octal-To-Hexadecimal Hexadecimal-To-Octal Conversion
· Convert Octal (Hexadecimal) to Binary first.
· Regroup the binary number by three bits per group starting from LSB if Octal is required.
· Regroup the binary number by four bits per group starting from LSB if Hexadecimal is required.
Example:
Convert 5A8_{16} to Octal.
Hexadecimal | Binary Octal |
5A816 | = 0101 1010 1000 (Binary) |
= 010 110 101 000 (Binary) | |
Result | = 2 6 5 0 (Octal) |