图片来源:南京大学软件学院COA课程PPT
?author:zzb
Github主页 CSDN主页
文章目录
- 7 二进制编码十进制数运算
-
- 加法
- 减法
- 总结
7 二进制编码十进制数运算
NCBD码用于解决之间的矛盾,但代价是数字位数太多
加法
-
如果发生10进位,应补6,如1010为10进制10,补0110,则采用16进制进位实现10进制进位
-
对于红色1,加法本身已经超过16,进位到前一位,也要加6,补上因进位而丢失的6
-
(其中16进制进位,上面会出现红色1,此时补6,进位不会再发生.如果值超过9,则不会出现红色1,但补6后仍会出现16进制进位,因此仍会产生红色1,即两种情况都会进一到高位)
如果超过10,第四名必须是1,第二和第三名中至少有一个是1,所以会有以上两个和门
两个结果和高位进位一起通过或门,这样就会出现三种情况,即0110,即6,所以C44后面连出两条线S2,S1
另外,只需要判断一次,因为即使是最大的结果是19(9) 9 1(1)加上6后,结果是25,25-16=9,结果9并不会再进位
减法
这里的原理和原码计算一样,但是2n改成10n,9999……-x 1
,
如果不够减10n,然后提一个负号,让它出来变反,即res-10n变成-(10n-res),这样可以用取反加1来表示
如果够减10n也就是说,如果进位高,可以放弃进位,
总结
[外链图片转存中…(img-4M2Nc7wG-1656554644871)]