关于计算机补码的问题

教材中说一个正数的补码是其本身(原码),而一个负数的补码是对应正数取反加一,我的疑问是如果已知一个负数的补码是10110110,则要求出对应的正数,该怎么做?常规的来看,... 教材中说一个正数的补码是其本身(原码),而一个负数的补码是对应正数取反加一,我的疑问是如果已知一个负数的补码是10110110,则要求出对应的正数,该怎么做? 常规的来看,我会将10110110-1然后再取反得到,可是老师讲直接对10110110取反然后加一,我很纳闷,这是怎么回事? 展开
 我来答
做而论道
高能答主

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

由补码求原码,采用“减一取反”,这才符合逻辑。

这么做,其在中间步骤,还可以得到反码。

但是,对于二进制来说,“取反加一”和“减一取反”,结果是相同的。

这是有理论证明的。

所以,你可以采用任意一个方法来求出原码。

不过,值得注意的是:

-128 只有八位的补码,却没有原码和反码。

无论你用哪种方法,都是求不出来原码和反码的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祖童酒千叶
2020-04-11 · TA获得超过3863个赞
知道大有可为答主
回答量:3171
采纳率:33%
帮助的人:200万
展开全部
1.是这样规定的,如果硬要理解的话,可以这样理解:
16位的-128是1000000010000000,而8位恰好位于分界点,在8位的范围内,-127到127肯定是很好理解的,而10000000表示-128理解成-0也行,理解成-128也行,采取后者正好跟16位的兼容,所以更佳!
2.定点补码表示纯小数,第一位的1表示负数,0000000表示数值,补码的补码是源码,所以0000000的补码是取反加一,等于1,所以等于-1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式