BCD码减法也可用补码运算代替,原理和之前写过的八位二进制数补码运算原理相同。
八位二进制数的范围是00H~FFH,八位BCD码的范围是00H~99H,也可以像补码运算一样画一个时钟,起点是00H,00H逆时针的第一个数是99H。只要有时钟,就可以用补码运算规则,那么BCD码的补码如何求呢,看下图,红色弧线便是08H的补码,计算方法是99H+01H-08H = 9AH - 08H,所以用9AH减去该BCD码,便可得其补码。
另外,做BCD码加减法时,还要进行调整,因为十六进制加法是逢16进1,BCD码是逢10进1,相差6。
修正规则:
(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.
(3)低位修正结果使高位大于9时,高位进行加6修正。