BCD码(Binary-Coded Decimal)是一种二进制的数字编码形式,它用4位二进制数来表示1位十进制数中的0~9这10个数码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。BCD码最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
BCD码可以分为有权码和无权码两类。其中,8421码是最基本最常用的BCD码,在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。
在计算机系统中,BCD码有两种常见的格式:
分离BCD码:
用一个字节的低四位编码表示十进制数的一位。例如,数字82的存放格式为:_ _ _1 0 0 0 _ _ _ _0 0 1 0,其中下划线表示无关值。
组合BCD码:
将两位十进制数存放在一个字节中。例如,数字82的存放格式是1000 0010。
在进行BCD码的加减运算时,由于计算机将数当作二进制数来运算,所以需要对结果进行修正,这称为BCD调整。修正规则包括:如果任何两个对应位BCD数相加的结果向高一位无进位,且结果小于或等于9,则不需修正;若结果大于9且小于16,则该位进行加6修正;如果任何两个对应位BCD数相加的结果向高一位有进位(即结果大于或等于16),则该位进行加6修正。低位修正结果使高位大于9时,高位也需要进行加6修正。
总之,BCD码是一种非常实用的数字编码方式,特别适用于需要高精度计算的场合,如会计和金融系统。