Binary -3+-3=-2/2';补语

Binary -3+-3=-2/2';补语,binary,addition,twos-complement,Binary,Addition,Twos Complement,使用4位数字计算2的补码中的-3+-3,我的计算得到-2 二进制中的3是0011 因为两个数字都是负数,所以通过翻转所有数字来实现两个一的补码 1100和1100 加上一个,因为我们使用的是二的补码 1101+1101= 11010 第一个是溢出的,在两个的补码中被丢弃。剩下的是1010,在十进制中是负2。有人能解释一下在这个过程中做错了什么吗 编辑 我的问题似乎更具体地说是如何解释2的补码计算结果。我认为结果如下: 结果是1010。 在我的世界里,第一位是符号位,表示数字是负数。 以下0表示

使用4位数字计算2的补码中的-3+-3,我的计算得到-2

二进制中的3是0011

因为两个数字都是负数,所以通过翻转所有数字来实现两个一的补码

1100和1100

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

1101+1101=

11010

第一个是溢出的,在两个的补码中被丢弃。剩下的是1010,在十进制中是负2。有人能解释一下在这个过程中做错了什么吗


编辑

我的问题似乎更具体地说是如何解释2的补码计算结果。我认为结果如下:

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

因此,我将其解释为结果为-2

第一个是溢出

如您在此处所暗示的,如果您将存储限制为单个Nyble,那么使用两个Nyble的补码,您可以表示范围
-8
7
的值


-2
将是
0b1110
,这不是您所拥有的<代码>-6确实是
0b1010
,这是正确的总和。

结果是正确的,您只是把它解释错了。当您对2的补码中的数字执行算术运算时,结果也是2的补码。所以,从负数到正数的转换,和原始数从正数到负数的转换是一样的

给定4位二进制值
1010
,首先翻转一个补码的位以获得
0101
,然后为两个补码添加1以获得
0110


0110
是6,因此
1010
是-6。

没有任何错误
1010
-6
,这是正确答案
1110
-2
。你能解释一下为什么会这样,并作为答案发布吗?在我的头脑中,第一位是符号位,010是十进制的2?根据你的逻辑,
1101
应该是
-5
,但你自己说它是
-3
。你能详细说明一下将计算结果转换为十进制的规则吗,我将它标记为答案。“看来有一点我还是不太明白。”乔纳斯格伦贝克:我想我说得很清楚。你对哪一部分感到困惑?我把答案解释为带符号位的普通二进制数。所以,第一个1表示它是负的,下面的0表示-4中有0个,下面的1表示-2中有1个,最后的0表示-1中有0个:)@JonasGrønbek是的,没错。@JonasGrønbek这只是告诉你正等价物是什么,这样你就知道你在读什么了
0110
是6,所以要得到-6,需要进行两次补码转换:
0110
->
1001
->
1010
,这就是你得到的。转换是双向的。