【问题标题】:Two's Complement, subtracting two negative binary numbers二进制补码,减去两个负二进制数
【发布时间】:2017-02-13 04:19:27
【问题描述】:

所以我在做 CS,讲师写了一个新的二进制问题,我无法理解。

基本上,如果两个负数是二进制的,如何减去它们?

具体如何使用刚刚介绍的 Two's Constant 来实现。

例如:-2 - -7 = 5
或:1110 - 1001

我不明白您如何使用这些位来获得正确答案,即5.

有人可以帮忙吗?

【问题讨论】:

  • 和常规减法一样吗?或者你是在问最左边溢出时的规则吗?
  • 嗨凯文,我真的不明白怎么做?如果我切换第二个术语并添加它们,即使在溢出之后我也会留下数字 1。你介意给我看一个例子吗?
  • 可能在这里试试? cs.stackexchange.com

标签: java math binary subtraction


【解决方案1】:

如果你有

  1110 -2
- 1001 -7
------
  0101  5

这是一样的

  1110 -2
+ 0111  7
------
  0101  5

【讨论】:

  • 谢谢!所以,答案是 10101 - 然后由于溢出,你摆脱了最左边的数字使其成为 0101,即 5?
  • @alexjackhughes 是的,如果您使用 4 位或 8 位或 32 位值,您不会得到额外的位,因为您执行了计算。 (从技术上讲,CPU 确实将这一位保留在标志中,但 Java 会忽略它们)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 2018-05-26
  • 2014-02-17
  • 1970-01-01
  • 2017-03-16
相关资源
最近更新 更多