我有两个2的补码有符号二进制数,想要减去它们(假设一个8位减法器)
1001 0110
1000 0001
找到差异的操作是什么,为什么/ whynot有溢出
答案 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。