使用4位数计算二进制补码中的-3 + -3,我的计算结果为-2。
二进制3是0011
通过翻转所有数字来制作一个补码,因为两者都是负数
1100 && 1100
添加一个,因为我们使用的是两个补码
1101 + 1101 =
11010
第一个是溢出,并以两个补码被抛弃。所以留下1010,十进制减去2。有人可以解释在这个过程中做错了什么吗?
编辑
我的问题似乎更具体地说明如何解释二进制补码计算的结果。我将结果视为如下:
结果是1010.在我的世界中,第一位是符号位,表示该数字为负数。以下0表示存在0的-4以下1表示存在1的-2以下0表示存在-1的-1
因此,我将其解释为结果为-2
结果是正确的,你只是解释错了。当你对二进制补码中的数字进行算术运算时,结果也是二进制补码。因此,从负数到正数的转换与将原始数字从正数转换为负数的方式相同。
给定4位二进制值1010
,首先翻转一个补码的位以获得0101
,然后为二进制补码加1以获得0110
。
0110
是6,所以1010
是-6。
第一个是溢出
如果您在这里暗示,您将存储限制为单个nybble,那么使用两个补码,您可以表示-8
到7
范围内的值。
然后-2
将是0b1110
,这不是你拥有的。 -6
确实是0b1010
,这是正确的总和。