对补码的理解:两种求法

课本的结论是:二进制数的最高位是符号位。符号位为 0 表示正数和 零 ,符号位为 1 表示负数。
正数是原码反码补码都是一样的。负数的反码是:符号位不变,剩下位取反。
负数的补码是:符号位不变,剩下位取反,再加一。

在这里插入图片描述

观察这个图发现,对负数补码的求值也可以这么理解:把负数的绝对值,取反再加一。结果其实是一样的。

应用在哪里呢? ARM 处理器,在减法出现借位时,有标志寄存器的 C 位置 0 ,那么高位再做减法时,是要减去借位的,即多减一。

x - 1 = x + ( -1 ) = x + 0xFFFF_FFFF , 而 全 F 恰好就是 0 的反码 : 故书上结论:借位减法时减去 C 位的反码。刚好这么做可以让硬件电路更简单。

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值