【问题标题】:Stuck subtracting binary numbers卡住减去二进制数
【发布时间】:2014-11-22 01:07:20
【问题描述】:

对于这个问题,我必须减去两个二进制数。结果必须是负数,但我总是得到错误的答案。这是我所做的:

57 - 184

111001 - 10111000

然后我翻转 10111000 是它的 01000110

最后加一个01000111

然后我这样做了:

(迷路了)

111001 + 01000111 = 10000000。

然后你从 -128 或 -256 中减去它。 (我迷路了,请帮忙!)

【问题讨论】:

    标签: binary


    【解决方案1】:
    111001 - 10111000
    
    Because left is smaller than right operand, pre-add 100000000
    (100000000 is where you want to have sign bit after)
    
      100000000
    +    111001  
    -----------
      100111001
    
    Then just subtract
    
      100111001
    -  10111000
    -----------
       10000001
    
    Result (8bits) = -127
    

    【讨论】:

    • 好的,我很确定我现在明白了 :) 谢谢!
    【解决方案2】:

    使用 filp,因为这个 010111000 是它的 101000110 当第一个二进制中有 1 时使用额外的 0!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多