关于BCD码的编码和解码
1)BCD码(Binary Coded Decimal ——二到十进制编码)
计算机内部多采用二进制表示和处理数值数据,因此在计算机输入和输出数据时,就要进行进制的转换处理。用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码,即BCD代码。
BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。其方法使用四位二进制数表示一位十进制数。以下为对应的8421码:
十进制数 8421码
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
256(D)=0000 0010 0101 0110(BCD)
2)BCD码与二进制之间的转换
当需要将BCD码转换成二进制码时,要先将BCD码转换成十进制码,然后再转换成二进制码;当需要将二进制转换成BCD码时,要先将二进制转换成十进制码,然后再转换成BCD码。
C#版代码实现:
int count;
byte[] data = new byte[2];
data[0] = (byte)((count / 100) / 10 * 16 + (count / 100) % 10);
data[1] = (byte)((count % 100) / 10 * 16 + (count % 100) % 10);
int a=(data[0] / 16 * 10 + data[0] % 16) * 100;
int b=(data[1] / 16 * 10 + data[1] % 16);
int count = a + b;