计算机中为什么要使用补码

本文通过分析7-6=1的运算过程,探讨了在计算机中如果不使用补码,原码和反码运算会出现的问题。补码解决了原码和反码运算导致的错误结果,使得正负零表示一致,并有效利用位数表示更多十进制数,特别是避免了负数表示的额外开销。
摘要由CSDN通过智能技术生成

我们假设不使用补码在计算机的运算中会发生什么,以一个简单数学算式7-6=1来分析

1,使用原码

7 的二进制原码 :0 000 0111   其中最高一位表示符号位

-6的二进制原码 :1 000 0110

二者做相加运算

  0 000 0111

+1 000 0110

   1 000 1100

这个结果 符号位是1 表示是一个负数。明显结果有误

2,使用反码

7 的二进制反码:0 000 0111

-6的二进制反码   1 111 1001

二者做相加运算

  0 000 0111

+1 111 1001

1 0 000 0000

计算产生了进位,最高位溢出,舍弃。结果就是 0 000 0000.这个结果也是不合理。和十进制的运算结果不一致。

但是我们发现如果在这个结果上再加上1,就是我们想要的结果了。这个问题是不是具有一般性? 再随便举个例子8-5=3

8的原码&#

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值