Meaning of BCD – “Binary Coded Decimal”, is a method that use binary digits 0 which represent “off” and 1 which represent “on”. BCD has been in use since the first UNIVAC computer. Each digit is called a bit. Four bits are called a nibble and is used to represent each decimal digit (0 through 9).
The first binary number system was documented by Gottfried Leibniz in the 17th century. In 1854 mathematician George Boole came up with a system of logic that is know today as Boolean Algebra (based on two elements 0’s and 1’s).
The binary numbering system use a base of 2 whereas the decimal numbering system use a base of 10. When the binary number is 0, then the number is off, when the binary number is 1, then the number is on. The configuration of BCD is “8421” a 4 bit binary called a nibble . Therefore, the decimal 5 is a BCD 0101: where 0=8, 1=4, 0=2, 1=1; the 8 and 2 are turned off.
The following is an example of binary digits and how they represent decimal digits:
Decimal | BCD |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
The advantage that Binary Coded Decimal (BCD) has over Binary is that there is no limit to number size. For every decimal number added, you add 4-bits or one nibble. Binary numbers are limited to the largest number that can be represented by 8, 16, 32 and 64 bits. It is easier to convert decimal numbers to and from BCD than Binary.
BCD is usually converted to Binary for arithmetic processing since computers only process 0’s and 1’s. However, hardware can be built to operate directly with BCD. BCD is common in electronic systems where numeric value is displayed. This is done in systems that consist of digital logic and do not contain a microprocessor.
Computer processing requires a minimum of 1 byte (8 bits) therefore, the left portion of each BCD number is wasted storage. Because storage is valuable, storage can be saved by using packed BCD numbers. With packed BCD numbers (e.g. 2 bytes are use to store 3484 instead of 4 bytes) the left byte will consist of 00110100 (34) the right byte will consist of 10000100 (84).