关于两种容易混淆的补码概念

补码,有两种概念,一定一定要区分清楚。

第一种概念:补码是一种计算机存储单元保存数据的形式,与其同级的概念还有原码反码

第二种概念:补码是一个数值经过补码运算之后,所得到的数值结果,比如在数据传输之中经常使用的“校验和(CheckSum)”校验方式,就会用到补码。
如果基于第一种概念,那么求补码形式数值的过程,是与数值符号相关的,正数的补码形式数值=其原码形式数值,负数的补码形式数值=其反码形式数值+1
如果基于第二种概念,那么求补码结果的过程,是与位数(bit)相关的,比如在数据传输中所应用的“校验和”,就需要在协议中指定校验和数据占多少位,如果校验和定义了8位空间,那么其能够存储的最大有效十进制数值便为255。
那么问题来了,如果我计算得来的校验和为258,大于了255怎么办?那么就需要计算十进制258的低8位数据的补码作为校验和结果。
十进制258的二进制数值为100000010,其低8位自然是00000010,基于第二种补码的概念,求补码结果是与数值符号无关的,也就是说你无论是正数还是负数,都按照统一的公式来计算补码结果,这个公式就是(补码结果=原数值按位取反+1),那么00000010按位取反=11111101,然后再+1=11111110,十进制为254,即为数值258低8位的补码结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值