加减运算总结 >> 原码补码

原码表示有符号数的加法:

如果用加法实现最终结果是错误的(加法器直接对原码进行加法运算) >>> 10011100

而换用减法实现就会是正确的答案 >>>> 00000000

理由 :原码的加数和被加数分别可能出现正数负数两种情况,也就是一共出现四种情况

解决方法:

1.原码的加法

2.原码的减法

举例:


注意: 真值都是原码表示出来的

          计算是用补码进行计算的

如果最后得出

1,0001011 >> 负数 >>负数的补码的真值是:从右往左数第一个1为分界线,除符号位以外全部取反

>>1,1110101>>除符号位>>64+32+16+4+1==117 >> -117

如果最后得出

0,1101100 >> 正数 >>补码等于原码 >>  64+32+8+4==108 >>+108

计算机硬件处理溢出

为什么说正数+正数 会出现上溢呢?

例如:2+2==4 >> 010+010 >>100 >>对应的是-4

例如 3+3 == 011 + 011 == 110 >>  对应的是 -2

如何判断是什么溢出呢?

方法一:

在 [A+C] 的补码运算中,A的符号位是0, C的符号位是 0 ,最终结果的符号位是1

所以对应代入V 的表达式中判断是1 >>> 有溢出

方法二:

出现上溢                                                      出现下溢

方法三

判断是否有溢出用异或,具体上溢还是下溢利用上述方法

注意:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值