减去负2的补码

时间:2014-09-03 04:31:53

标签: binary twos-complement number-systems

我有两个2的补码有符号二进制数,想要减去它们(假设一个8位减法器)

1001 0110

1000 0001

找到差异的操作是什么,为什么/ whynot有溢出

1 个答案:

答案 0 :(得分:0)

要获得2个数字之间的差异,你必须减去它们:
1001 0110b = -106
1000 0001b = -127
所以-106 - (-127) = 21

你也可以用二进制文件做到这一点:

 1001 0110b
-1000 0001b
     =
 0001 0101b

另一种方法是:a-b = a+(-b),所以你必须使第二个数字的2补码。因此1000 0001b变为0111 1111b

  1001 0110b
 +0111 1111b
      =
1 0001 0101b

第一个1没有计数,因为它是一个8位数字,因此结果也是0001 0101b,十进制为21。