首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >-3 + -3 = -2

-3 + -3 = -2
EN

Stack Overflow用户
提问于 2019-02-25 18:15:55
回答 2查看 450关注 0票数 1

使用4位数计算-3 + -3在二的补码中,我的计算得出-2.

3二进制数是0011

通过翻转所有数字来补充两者,因为两者都是负数

1100 & 1100

加上一个,因为我们使用的是两个的补码

1101 + 1101 =

11010

第一个是溢出,然后被丢弃在两个的补语中。剩下的是1010,这是小数中的负2。有人能解释一下在这个过程中做错了什么吗?

编辑

我的问题似乎更具体地说明了如何解释两个补语的计算结果。我对结果的看法如下:

结果是1010。在我的世界里,第一个位是符号位,表示数字是负数。下面的0表示-4的0,下面的1表示-2中的1,下面的0表示-1的0。

因此,我把它解释为结果是-2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-25 18:28:23

结果是正确的,你只是把它解释错了。当你在两个补码中对数字执行算术时,结果也是两个补数。因此,从负数到正数的转换和原始数从正数到负数的转换方式是一样的。

给定4位二进制值1010,首先将比特翻转到一个补码上以得到0101,然后再为两个补码加1以得到0110

0110是6,1010是-6。

票数 1
EN

Stack Overflow用户

发布于 2019-02-25 18:26:04

第一个是溢出

如果像这里所暗示的那样,您将存储限制为单个nybble,那么使用两个补码,您可以将-8范围内的值表示为7

然后,-2将是0b1110,这不是您所拥有的。-6确实是0b1010,这是正确的和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54872355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档