我最近参加了一个代码力量竞赛。在比赛的编辑部分,我看到了按位运算符之间的一种美妙关系,即 x + y = x & y + x | 是的 我还不知道证明。我拿了几个数字来看看这个等式是否正确。我很高兴知道这个证明。我在网上查了一下,没有找到任何有意义的参考资料。请帮我找到证据,或者至少给我这个美丽等式背后的直觉。提前致谢
假设你正在做a + b。
请注意,将 的第 i 位(从最右边的数字开始计数)a与第 i 位的交换b不会影响总和。例子:123 + 456 == 156 + 423。无论基数的选择如何,这都有效,因此它也适用于二进制加法。
接下来,请注意可以通过以上述方式(二进制)交换一些数字来完成从a + b到的转换a&b + a|b。如果a[i] == 1和b[i] == 0,则交换a[i]和b[i];之后,a变成a&b和b变成a|b。因此这种转变不会影响结果。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |