负数补码

今天做了个很容易出错的题目
总结下 关于负数补码的知识
首先在计算机系统中数据都是以补码存储的
正数的补码
很简单就等于其二进制原码
负数的补码
1.先将负数的绝对值进行二进制转换
2.将最高位即符号位变为1(符号位为1表示负数 0为正数)
3.然后求反码(除符号位 其他取反就可以)
4.最后求补码 即在反码最低位加1
例如:-5的补码
1.首先绝对值二进制为0000 0101
2.符号位变1 即1000 0101
3.取反码 即1111 1010
4.补码为1111 1011

强调一点 -128的补码就是1000 0000这是规定好的 不用推理
在今天那道题目中是用的char型 而char型表示最小负数是-128
如果q求-129的补码
-129的补码需要9位来表示 多了一位 所以要舍弃最高位即舍弃符号位 区别在于 求反码是剩余的八位都要取反 因为符号位已经被舍弃了

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex、WY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值