Digital Design – Binary-Coded Decimal

In the previous lesson, we learned about binary codes and how they are used for representing a distinct discrete element of information using 1s and 0s.

People use the decimal system for everything and it’s easier for them to use decimal numbers on a computer than binary numbers. But binary is what the computer understands.

So we need a system to convert decimal to binary and perform the calculation using binary numbers and convert the output back to decimal for users.

This binary representation of a decimal number is called the binary coded decimal code or BCD code.

Binary-Coded Decimal (BCD code)

The binary coded decimal is a 4-bit code and each 4-bit code represents one decimal digit from 0 to 9. See the table below

Decimal Digit Binary Coded Decimal
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

But there are 16 codes because 2^4 = 16 combinations. The codes from 1010 to 1111 does not matter and are not used in BCD.

For example

The binary and BCD value of 128 is given below for your understanding.

Binary number for 12810 BCD Code for 12810
1000 0000 0001 0010 1000

Important points to remember

  1. Decimal number is 0, 1, 2, 3 so on, and BCD code is 0000, 0001, 0011… It means they are same.
  2. The binary number is not BCD, there is a difference.
  3. BCD coded decimal numbers need more bits. See the example above.

BCD Addition

When two BCD numbers are added then two things happen

  1. Sum is less than 1010 = decimal 10
  2. The sum is equal to or more than decimal 10

Suppose you add following BCD numbers

 

                          4 + 3
                               0100
                               0011
                               -------------
                               0111 = 7_{10}

 

The result is a BCD sum and less than 1010.

First Case – when BCD sum does not have a carry

Consider another example

 

                         8 + 4
                              1000
                              0100
                              -----------
                              1100 = 12_{10}

The BCD does not allow 1100 and we need 12 as an answer in BCD. The first digit is 1 and the second digit is 2.There are 16 codes in BCD and we are using only 10 of them.

1010 + 0110 = 1 carry + 0000 = 0001 0000 = 10 in BCD

1011 + 0110 = 1 carry + 0001 = 0001 0001 = 11 in BCD

1100 + 0110 = 1 carry + 0010 = 0001 0010 = 12 in BCD

1101 + 0110 = 1 carry + 0011 = 0001 0011 = 13 in BCD

1110 + 0110 = 1 carry + 0100 = 0001 0100 = 14 in BCD

1111 + 0110 = 1 carry + 1000 = 0001 0101 = 15 in BCD

Then whenever, you get an invalid BCD sum, add a 0110 = 6 to the result and you will get the correct BCD sum.

Second Case – when BCD sum has a carry

We now look at another case of BCD sum when the result appears to be correct but it has a carry.

                         8 + 9
                              1 0 0 0
                              +1 0 0 1
                              ---------------
                              1 0 0 0 1

In this case, we still add 0110 = 6 to the 4 least significant bits.

                         1 0 0 0 1
                              0 1 1 0
                              -----------------
                              1 0 1 1 1 

                              = 1 carry + 0111 
                              = 0001 0111 = 17

Example – BCD Addition

In this example, we will add two decimal numbers,

  214 + 389 = 603
                                0 0 1 0 0 0 0 1 0 1 0 0 = 214
                                +0 0 1 1 1 0 0 0 1 0 0 1 = 389
                                ____________________________________
                                0 1 1 0 1 0 1 0 1 1 0 1
                                0 1 1 0 0 1 1 0
                                ____________________________________
                                0 1 1 0 0 0 0 0 0 0 1 1 = 603

Bibliography

John.F.Wakerly. 2008. Digital Design: Principles And Practices, 4/E. Pearson Education, India.

Mano, M. Morris. 1984. Digital Design. Pearson.


Skip to content