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 |
110112 | |
24 + 23+01+21+20 | =16+8+0+2+1 |
Result | 2710 |
And
Binary | Decimal |
101101012 | |
27+06+25+24+03+22+01+20 | =128+0+32+16+0+4+0+1 |
Result | 18110 |
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 |
4510 | =32 + 0 + 8 + 4 +0 + 1 |
=25+0+23+22+0+20 | |
Result | = 1011012 |
Repeat Division-Convert decimal to binary
This method uses repeated division by 2.
Convert 2510 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 | 2510 | = 110012 |
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 0102 = (100) (111) (010)2 = 4 7 28
Repeat Division-Convert decimal to octal
This method uses repeated division by 8.
Example: Convert 17710 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 | 17710 | = 2618 |
Binary | = 0101100012 |
Hexadecimal to Decimal/Decimal to Hexadecimal Conversion
Example:
2AF16 = 2 x (162) + 10 x (161) + 15 x (160) = 68710
Repeat Division- Convert decimal to hexadecimal
This method uses repeated division by 16.
Example: convert 37810 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 | 37810 | = 17A16 |
Binary | = 0001 0111 10102 |
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 11112 = (1011) (0010) (1111)2 = B 2 F16
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 5A816 to Octal.
Hexadecimal | Binary Octal |
5A816 | = 0101 1010 1000 (Binary) |
= 010 110 101 000 (Binary) | |
Result | = 2 6 5 0 (Octal) |