用一组二进制数来表示一位十进制数的编码方法,称为二进制编码的十进制数或称为二一十进制数,简称BCD码。用4位二进制数来表示一位十进制数,4位二进制数有16种组合,从中选出10种来表示十进制数的10个数码有很多种方法,较常用的是8421 BCD码,即z位二进制数的“权”由左至右分别是8,4,2,1,所以称为8421 BCD码。
用于处理二—十进制数的方法与处理二进制数的方法是十分相似的。符号位用来表明该数是正或负,有三种表示负数的方法必须加以考虑。
BCD码概述在日常生活中人们习惯使用十进制,于是通常的输入/输出的数据也是用十进制实现人机交互。为了解决惯用的十进制与计算机能够识别的二进制之间的差别,引入BCD编码。
BCD码以4位为一组,选用0000B~1001B这10种状态,代表十进制中的0~9共10个数。当BCD码与十进制进行互换时,可以按4位一组,逐组进行互换。
例子1-1 将 62.142D 转换成BCD码。
(62.142)D = 62.142 = (01100010.000101000010)BCD
例子1-2 将10000101.001001011BCD转换成十进制数。
(10000101.001001011)BCD = 10000111.001001011000 =(87.258)D
要将一个二进制数转换称BCD码,可以先将它转换成十进制数,然后再将十进制数转换成BCD。同样将BCD码转换称二进制数,也是先转换为十进制数,再转换为二进制数。
例子1-3 将11111000100B转换为BCD码。
(11111000100)B = 1988D = 0001100110001000 = (0001100110001000)BCD
BCD码的运算,是指参加运算的数为BCD码,结果也为BCD码。运算时,BCD码低位与高位之间是逢十进一的,而4位二进制数是逢十六进一,在实际执行时计算机仍然是二进制运算操作。
形式表示负BCD数可用两种形式表示,一种表示为带有符号位的正数;另一种表示为某较大BCD数的补码。例如,一58的BCD数可表示为:
0 0101 1000
其中,符号位为0,表示其后的BCD数为负。
另一种表示法就是用58相对某一数值范围的最大BCD数的补码来表示。如果在所考虑的数值范围内最大数为100(一百),那么,一58可用42来表示,即:
一0101 1000——→0100 0010
转换的规则如下:表示负值的正数相对原负数而言,其最低位BCD数应取BCD补码,其余各位BCD数应取BCD反码。1
例子例1、用补码表示一367:
-(367)0011 0110 0111
取BCD反码
(633) 0110 0011 0011;
例2、在四位BCD数的范围内,用补码表示一367。
用四位BCD数表示一367应为:
一0000 0011 O110 011l 一367
此BCD数的最低位取BCD补码;其余各位取BCD反码,则得:
1001 0110 0011 0011 +9633
在四位BCD数范围内,此数与+367相加所得之和为0。1
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学