【问题标题】:Smallest Two's Complement in Binary二进制中最小的二进制补码
【发布时间】:2011-12-05 22:27:24
【问题描述】:

我不确定我是否可以在这里问一个二进制问题,但这里是.. 我们在期中考试时遇到了这个问题,但我们的教授没有提供正确的答案。这让我发疯了,决赛即将到来,所以填补这个空白可能是个好主意。谢谢!

找到最小的二进制补码,当添加到0101 0101 时会导致溢出。用二进制表达你的答案。

我的理由: 我通过将原始二进制 0101 0101 转换为实际数字,然后将其添加到其中,找到了原始二进制 0101 0101 的范围。然后我将比范围多 1 的数字转换为 8 位二进制作为我的答案。然而,这只为我赢得了 3/6 分。我不知道我还能做什么。任何见解将不胜感激!

【问题讨论】:

    标签: binary


    【解决方案1】:

    原始二进制是一个正数(0 符号位)。当您向其中添加一个更改符号位的正数时,会发生溢出。使用二进制表示法应该很容易看出最小的数字是多少:

    没有溢出:

      0101 0101
    + 0010 1010
      ---------
      0111 1111
    

    溢出:

      0101 0101
    + 0010 1011
      ---------
      1000 0000
    

    我不知道这是否是您的教授想要的。 (您可能只是从 1000 0000 中减去,而不是将其视为一种模式。)

    编辑既然你要求一个例子(意思与上面不同),下面是减法的工作原理:

      1000 0000 (the target overflow quantity)
    - 0101 0101 (the original binary)
      ---------
      0010 1011 (the smallest number that will overflow when added to original)
    

    【讨论】:

    • +1 表示减法。基本上,找出第一个会溢出的数字 (1000 000),然后计算出您与该数字的距离(即减去它)。
    • 感谢您的回复。这很有帮助! =3 我可以看一个例子吗? ^^
    【解决方案2】:

    这个数字是十进制的 85,所以 128-85 是 43

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多