In this tutorial we will see how to convert the decimal number to a BCD and BCD to a decimal number.

So that 0101 0010 represent 82 as a decimal number.

###

We shall take the same example, In this 52 we need to split those two digits. It can be done by dividing(1) by 10 and Mod (%) by 10. Divide(/) by 10 will give first digit and Mod (%) by 10 will give the second digit. After getting the first digit Left shift it by 4 will move it 4 bits forward and by logical Or(|) the second digit will give the result.

{

return (((Decimal/10) << 4) | (Decimal % 10));

}

{

return (((BCD>>4)*10) + (BCD & 0xF))

}

### What is a Binary Coded Decimal (BCD) ?

Binary coded decimal is number where each decimal is stored individually. It will confuse much so we can see a example.

Let us take 52 as a decimal number, the equivalent BCD number is 82.

#### How ?

We need to take each digit individually

5 -> 0101

2 -> 0010

So that 0101 0010 represent 82 as a decimal number.

###

How to implement it in a C or C++ program

We shall take the same example, In this 52 we need to split those two digits. It can be done by dividing(1) by 10 and Mod (%) by 10. Divide(/) by 10 will give first digit and Mod (%) by 10 will give the second digit. After getting the first digit Left shift it by 4 will move it 4 bits forward and by logical Or(|) the second digit will give the result.#### Decimal to BCD Conversion Program

int DecimalToBCD (int Decimal){

return (((Decimal/10) << 4) | (Decimal % 10));

}

#### BCD to Decimal Conversion Program

int BCDToDecimal(int BCD){

return (((BCD>>4)*10) + (BCD & 0xF))

}

**Note:**This example will work only with two digit variables if the decimal number is more than that 100 or 1000 should be used based on the decimal value. I am leaving it to yourself. Have any doubts comment below.