这是溢出吗? - 两次补充

时间:2015-04-04 14:50:21

标签: binary decimal twos-complement

我试图将以下两个二进制数加在一起,但我无法这样做,因为我不确定这是否是溢出?

110101 + 010111 我得到的答案是:1001100

我会删除答案中最左边的1还是保留它?通过删除它我得到12,否则答案是不对的。我做错了吗?

这是对的吗?

1 个答案:

答案 0 :(得分:1)

这个问题的答案取决于你所谈论的系统中单词的大小。在8位(或更高)系统中,你正在做2的补码,

的总和
110101 + 010111 = 1001100

与:

相同
00110101 + 00010111 = 01001100

是:53 + 23 = 76没有溢出或执行。

如果它是一个7位系统,做2的补码,那么你有:

0110101 + 0010111 = 1001100

哪个是53 + 23 = -52。有溢出,但没有执行。

如果它是一个6位系统,做2的补码,那么:

110101 + 010111 = (1)001100

哪个是-11 + 23 = 12。没有溢出,但有一个执行。请注意,在6位系统中,您不能在技术上拥有1001100因为它是7位。你会001100

供参考,请参阅The CARRY flag and OVERFLOW flag in binary arithmetic