このソリューションの仕組みを理解しました。算術演算子を使用せずに2つの数値を追加する際の説明
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
}
しかし、この問題を超える著者のコメント:。
「このような問題で私たちの最初の本能は、我々はビットで動作する必要があるとしているということであるべき理由ので、ときあなたは? +記号を取り除いて、他に何を持っているのだろうか?さらに、それがコンピュータのやり方だ」
著者は何を暗示しようとしていますか?
ありがとう –