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(1001)+ 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 

 

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值