补码运算原理

1用途

补码的出现是为了解决计算机硬件无法直接做减法的问题,通过原码转化成补码就可以把减法运算转化为加法运算来做了。

2本质

补码运算的本质是类似于取模运算

比如做十进制的个位数运算

(结果也应该是个位,超出则是溢出。运算数0~10)

那么

2 + 1 = 3

2 + 3 = 5

当做减法的时候,取下一位数的最小值

2 - 1 + 10 = 11

然后结果只取个位数2 - 1 = 1

同样的

结果取个位,5 - 3 = 2

红框的部分其实就相当于二进制运算当中的取反再加一。

它就是加(10 - x),然后对10取模

结果是负数的情况

你要知道,这是作个位运算,结果大于9都是溢出的

所以

我们加10后

6小于10,所以

当结果小于10时,我们需要给结果再取一次(10 - x)

红框的部分相当于2进制运算中的取反再加一

3二进制减法运算例子

       用前面的5 - 3和3 - 7

结果时整数,只用取一次补码

结果是负数,取两次补码(运算一次,结果一次)

4其他

8位有符号数的表示范围是-128 ~127(负数补码表示)

正数有0~127 (128个)

负数有-128~-1(128个)

1000000表示 -128

对7位运算来说,128是它下一位的最小值

类似于前面的个位数运算

7-0 = 7+10 - 0 = 17

7 - 10 = 7 + 10 - 10 = 7

-(10 - 7 ) = -3

减10相当于加0

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值