127 + 1 = -128 ?简单理解计算机的原码反码补码


一.首先了解计算机怎么存储负数

  • 计算机用第一位为符号位(例如1 二进制为001 -1的就是101)那么如果我们直接计算的话就会的出1-1的话就是110那么就会得出-2这样就不对。
  • 我们就使用了原码,反码,补码这一概念计算机底层都是用补码存储

二.补码的计算

  • 原码反码补码的引入是为cpu解决负数计算
  • 原码和反码都是为了计算补码,计算机底层都是补码!(重要!!)
  • 正数的反码和补码都是本身,负数的原码得到补码的计算就是除了符号位,取反加一
  • 101(原码) -> 100(-1得到反码) ->111(补码) 同样正数001的补码就是001。111和001计算得到000 结果正确! 当我们使用补码的时候就okle!

三.关于补码转换成原码

  • 学校的题目通常会这样出通常如果题目给出的码如果不加声明就都是补码因为计算机底层都是补码
  • 例如101(补码) 转成原码自然就是逆运算-1取反了 注意!笔者这里使用的是3个bit位(-4 ~ 3)所以会有所不同

四.关于127+1 = -128

  • 我们使用一个byte时127的在计算机底层的补码就是0111 1111 这个就是127 那么我们加1的话就是1000 0000(补码)这个数当然就是-128了!

重要的是我们要知道计算机底层都是补码,这一引入是为了解决负数问题!

谢谢大家的支持!,有问题评论区问我ou!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值