进位最高有效位(3位)

时间:2019-07-01 20:33:27

标签: binary overflow twos-complement data-representation

考虑3位的二进制补码表示法:

3 + 2导致溢出。

011 + 010 = 100 //为什么是100?我认为应该是101。

在这种情况下,最高有效位的进位和最高有效位的进位是什么?

教科书上说,最高有效位的进位为1,最高有效位的进位为0。

我认为教科书是错误的。进位应为0,进位应为1。我正确还是教科书正确?

请帮助。谢谢。

Textbook

1 个答案:

答案 0 :(得分:0)

我会说,

正确的错误,就像生活中的大部分时间一样:-)

您正确地说出011 + 010 = 101。您发布的链接给出了100的{​​{1}}值,尽管它不是正确的值,但这是对该值的正确解释

通常,您可以通过将两个值不加加到溢出中来获得溢出的值,然后减去范围(如果是三位值,则为八个),如果该范围大于范围的一半减去一个

换句话说,-4,但是,由于该值大于3(一半范围减去一个),因此您减去范围3 + 2 = 5得到8,这就是您的正确位模式为-3

101

但是,将中间位相加(没有从右位进位)确实会给您零结果和进位1的结果。

这意味着MSB(左位)的进位确实是 。而且,当将那些左位数(均为零)与进位为1相加时,您会得到带有零进位的1。

也许您对我的教科书的阅读方式与我不同,但在这里我们可能不得不从怀疑中受益。