二进制中-3 + -3 = -2

问题描述 投票:1回答:2

使用4位数计算二进制补码中的-3 + -3,我的计算结果为-2。

二进制3是0011

通过翻转所有数字来制作一个补码,因为两者都是负数

1100 && 1100

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

1101 + 1101 =

11010

第一个是溢出,并以两个补码被抛弃。所以留下1010,十进制减去2。有人可以解释在这个过程中做错了什么吗?


编辑

我的问题似乎更具体地说明如何解释二进制补码计算的结果。我将结果视为如下:

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

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

binary addition twos-complement
2个回答
1
投票

结果是正确的,你只是解释错了。当你对二进制补码中的数字进行算术运算时,结果也是二进制补码。因此,从负数到正数的转换与将原始数字从正数转换为负数的方式相同。

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

0110是6,所以1010是-6。


0
投票

第一个是溢出

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

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

© www.soinside.com 2019 - 2024. All rights reserved.