简析二进制补码原理:补码 = 反码 + 1?

前言

在计算机系统中,规定数值一律用补码来表示和存储。因为使用补码可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

很多人很好奇为什么要使用补码表示和存储?直接使用原码表示多好,看上去更加直观和易于计算。

那么,为什么计算机使用补码比原码更好,又是如何通过补码来计算数值的呢?这其中的原理是什么?

什么是补码?

补码的定义:正数的补码与原码相同。负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)再+1,即为负数的反码+1。

要了解补码首先要了解“模”,模是补码的基础,“模”是指一个循环周期的最大值,当超过这个最大值后就会开始新的周期,例如时钟的一个周期最大值是12,所以模就是12;一周的模是7天;一天的模是24小时。

补码就是通过“模”将减法变加法,通过最形象的时钟能最好理解:

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨(逆时针旋转)2小时:8-2=6;另一种是顺拨(顺时针旋转)10小时:(8+10)%12=6,这样就有 (8-2)%12=(8+10)%12=6

通过这个简单栗子,可以看出在以12为模的系统(时钟)里,

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值