BCD码的加法和减法

什么是BCD码?

BCD码以四位二进制数视作一个十进制位

【例】BCD码0011 0100(二进制)、34H(十六进制)表示34(十进制)

BCD码的加法

BCD码修正规则如下:

(1) 若两个8421码数相加之和等于或小于1001,不需修正。

(2) 若相加和在10-15之间,一方面应向高位产生进位,本身还要进行加6修正,进位是在加6修正时产生的。

(3) 若相加之和在16-18之间,向高位进位会在相加过程中自己产生,对本位还要进行加6修正。

为什么进行+6修正:

二进制直接相加,其进制实际上为16,而BCD码的实际进制为10。因此在本位结果超过10的时候,进行+6修正,以恢复10进制。

【例题】BCD码:9H + 3H = 12H

9H(0101)+ 3H(0011)

= CH(1100)// 二进制加法,本位的值变为 12

=18H(0001 0010)// 对本位进行 +6 修正,向高位进 1,本位变为 2

BCD码的减法

BCD码进行减法的步骤(补码算法):

①求减数的补码,如果是两位,则:补码 = 100 - 减数。这里的100,用2位的BCD码可以表示为9AH(1001 1010)。

②利用BCD码加法的运算法则,结果 = 被减数 + 减数的补码。

③若结果有向高处的进位1,则忽略。

【例题】BCD码:87H - 34H = 53H

9AH - 34 H = 66H (0110 0110)// 求减数的补码

87H + 66H = EDH (1110 1101)// 被减数 + 减数 (未修正)

EDH = 153H (0001 0101 0011)// 修正,忽略高位 1,则结果为 53

参考资料

https://blog.csdn.net/baidu_33836580/article/details/50578436

https://zhidao.baidu.com/question/48636085.html 

发布了91 篇原创文章 · 获赞 142 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/leelitian3/article/details/83903865