我了解此解决方案的工作原理。
int add_no_arithm(int a, int b) {
if (b == 0) return a;
int sum = a ^ b; // add without carrying
int carry = (a & b) << 1; // carry, but don’t add
return add_no_arithm(sum, carry); // recurse
}
但是作者对这个问题的评论是:
“对于此类问题,我们的第一直觉应该是我们将不得不使用位。为什么?因为当你去掉 + 号时,我们还有什么其他选择?另外,这就是计算机的工作方式。”
作者试图暗示什么?