我目前正在阅读一本关于“bit fddling”的书,出现以下公式:
x-y = x+¬y+1
但这似乎不起作用。例子:
x = 0100
y = 0010
x-y = 0010
¬y = 1101
¬y+1 = 1110
x+1110 = 10010
但是
10010 != 0010...
我在哪里犯了错误(如果有的话)?
(这本书是 Henry S. Warren 的“Hacker's Delight”。)
最佳答案
你只有一个四位系统!最终结果左侧的额外 1 不存在。它应该是:
x = 0100
y = 0010
~y = 1101
~y + 1 = 1110
x + 1110 = 0010
另一位溢出,并且不是您的结果的一部分。您可能想阅读 two's complement arithmetic .
关于binary - x-y = x+¬y+1 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453843/