补码怎么算

 我来答
吉傲科技
2022-12-11 · 超过287用户采纳过TA的回答
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:15.6万
展开全部

补码的计算方法有二进制补码的计算和十进制补码的计算。

1、二进制补码的计算方法:

二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码、反码与补码三者的关系,掌握一定基础的人都知道一下规则:

(1)原码。

最高位为符号位,0表示正数,1表示负数。

例如:X=0b11(3),四比特表示原码=0011(3);

X=-0b11(-3),四比特表示原码=1011(11);

(2)反码。

最高位为符号位,0表示正数,1表示负数。正数的反码等于本身,负数的反码除符号位外,各位取反。

例如:X=0b11(3),四比特表示原码=0011(3),对应反码为=0011(3);

X=-0b11(-3),四比特表示原码=1011(11),对应反码为=1100(12);

(3)补码。

最高位为符号位,0表示正数,1表示负数。

正数的补码等于本身,负数的补码等于反码+1:

例如:X=0b11(3),四比特表示原码=0011(3),对应反码为=0011(3),补码为=0011(3);

X=-0b11(-3),四比特表示原码=1011(11),对应反码为=1100(12),补码为1101(13);

2、十进制补码的计算方法:

对于十进制数来说,通过前面的性质不难得到正十进制数补码等于其本身,对于负十进制数来说如果还按位进行运算就太麻烦了!为了讲明白,我们从补码的起因说起:

“反码加一”只是补码所具有的一个性质,不能被定义成补码。负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的:

0001(1)+1001(-1)=1010(-2)。

而在补码中:

0001(1补)+1111(-1补)=10000(1溢出)。

所以对于一个n位的负数-X,有如下关系:X补+(-X)补=100...0=2n。

所以假设寄存器是n位的,那么-X的补码,应该是2n−X的二进制编码。

做而论道
高能答主

2022-12-25 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

计算机中的计算,都是用补码进行的。

补码怎么算?

极其简单!

计算机中,只有加法器。

补码的计算,也只有一种:加法。

你记住:逢二进一,就行了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2024-08-13 · TA获得超过5248个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:633万
展开全部
正数的补码,是其本身。
负数的补码,就用它的正数,减一取反,即可得到补码。
如,已知:+9 补码是:0000 1001。
下面求-9 补码:
先减一:0000 1001 - 1 = 0000 1000;
再取反:1111 0111。
所以有:-9 补码 = 1111 0111。
这不就完了吗?
简不简单?意不意外?
原码反码符号位,讨论这些垃圾干嘛?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式