如何仅使用基本算术运算来实现 XOR 操作(在两个 32 位整数上)?依次除以2的每个幂后是否必须按位进行,还是有捷径?我并不关心执行速度,而是关心最简单、最短的代码。
编辑: 这不是家庭作业,而是在hacker.org上提出的一个谜语。关键是在基于堆栈的虚拟机上实现 XOR,操作非常有限(类似于Brainfuck语言,是的 - 没有 shift 或 mod)。使用该虚拟机是困难的部分,尽管通过一种简短而简单的算法当然会变得更容易。
虽然 FryGuy 的解决方案很聪明,但我将不得不采用我最初的理想(类似于 litb 的解决方案),因为在那种环境中也很难使用比较。