【问题标题】:Binary substraction : 2's complement & carry二进制减法:2 的补码和进位
【发布时间】:2012-09-21 23:33:42
【问题描述】:

我想用二进制表示的数字1010 1101减去1。我写1的二进制补码:1111 1111,然后和第一个数字相加:

带进位的按位加法得到 1 1010 1100:由于进位,我最终得到了 1 位。这是如何在二进制加法中处理的?

另外,我在用补码做加法的时候对吗?

谢谢。

【问题讨论】:

  • 您计算的位宽是多少?如果它是一个字节,您只关心至少 8 位,因此进位(第 9 位)丢失。二进制补码仅在定义位宽时才有意义......(并且您正在计算模数 2^8 即 256)

标签: binary addition operation


【解决方案1】:

这是一种完全有效且常用的减法方法,但“进位”标志与正常加法的含义不同。由于不是减去n,而是添加一个大数字,因此需要以不同方式处理进位标志。额外的1 通常表示按位加法的进位,而这里它表示一切正常。如果那里没有进位,这实际上意味着结果应该是负数——a - b 被转换为小于2^na + 2^n - b,这意味着b > aa - b < 0。无论哪种方式,都没有关系,因为您的结果会在结果的 8 位中正确显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多