BCD码

时间:2017-01-11  |  来源:cnphp6

BCD是什么?

核心:用二进制数来表示十进制数的表示方法。

CD有两种形式,pack BCD, unpack BCD

1.pack BCD,压缩的BCD码

它是一种用四位二进制数表示十进制数. 首先是用四位二制数表示个数,然后用四位二进制数表示十位, 然后百位...。

比如:251需要三个四位二进制数表示。 1表示为0001;5表示为0101;2表示为0010.

最后251的BCD数据表示为0010 0101 0001.

即是每个数字都拆开来 表示。


2.unpack BCD.非压缩BCD

非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。

ASCII和BCD码对照表:

十进制数字 ASCII码 压缩BCD码 非压缩BCD码 
0 0011 0000 0000 0000 0000 
1 0011 0001 0001 0000 0001 
2 0011 0010 0010 0000 0010 
3 0011 0011 0011 0000 0011 
4 0011 0100 0100 0000 0100 
5 0011 0101 0101 0000 0101 
6 0011 0110 0110 0000 0110 
7 0011 0111 0111 0000 0111 
8 0011 1000 1000 0000 1000 
9 0011 1001 1001 0000 1001
 

BCD码:
  BCD(Binary Coded Decimal)是用二进制编码表示的十进制数(见表3.3),十进制数采用0~9十个数字,是人们最常用的。在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码 ②非压缩的BCD码

  压缩的BCD码:
  压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串BCD码来表示。例如,十进制数59表示成压缩的BCD码为0101 1001,十进制数1946表示成压缩的BCD码为0001 1001 0100 0110。

  非压缩的BCD码:
  非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。例如,十进制数78表示成压缩的BCD码为0000 0111 0000 1000。