【问题标题】:the carry in most significant bit(on 3 digits)最高有效位进位(3 位数字)
【发布时间】:2019-07-01 20:33:27
【问题描述】:

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

3+2 导致溢出。

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

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

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

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

请帮忙。谢谢。

Textbook

【问题讨论】:

    标签: binary overflow twos-complement data-representation


    【解决方案1】:

    错,我想说,就像生活中的很多事情一样:-)

    您说011 + 010 = 101 是正确的。您发布的链接给出了 -4100 值,这是该值的正确解释,尽管不是正确的值。

    通常可以通过将两个值相加得到溢出值.

    换句话说,3 + 2 = 5 但是,因为它大于三(范围减一的一半),所以你减去范围 8 得到 -3,这就是你的正确位模式是,101:

    Bit pattern   Unsigned   Signed
    -----------   --------   ------
       000           0          0
       001           1          1
       010           2          2
       011           3          3
       100           4         -4
       101           5         -3
       110           6         -2
       111           7         -1
    

    但是,添加中间位(没有从右位结转)确实实际上会给您一个结果为 0 和进位为 1。

    这意味着进入 MSB(左位)的进位是确实之一。而且,当把左边的数字(都是零)加上一个进位时,你会得到一个进位为零的数字。

    可能是您对教科书的阅读方式与我不同,但我们可能不得不在这里怀疑它。

    【讨论】:

    • 谢谢,我现在有点明白是怎么回事了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2015-03-25
    • 2015-08-20
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多