みさご解体新書

XOR

任意の偶数 n について n ^ (n+1) = 1

cout << (2 ^ 3) << endl; // 1
cout << (44 ^ 45) << endl; // 1
cout << (678 ^ 679) << endl; // 1
10 進数 2 進数
44 101100
45 101101

偶数 n について n と n + 1 を 2 進数表記にすると、最下位ビットのみが異なるので XOR を取ると必ず 1 になる。