排他的論理和は x^x = 0, x^0 = x であり、交換法則も成り立つので、
x^(x^y) = y, y^(x^y) = x である。
従って、変数 x, y をそっくり交換したい場合は以下のように記述できる。
auto t = x ^ y;
x ^= t;
y ^= t;
特定のビットのみを交換したい場合は、t の計算時にその部分をマスクしてやるとよい。
例えば、変数 x, y の下位4bitの部分だけを交換したい場合は以下のように記述するといいぞ。
auto t = (x ^ y) & 0x0f;
x ^= t;
y ^= t;
x = 0x123, y = 0xabc の場合、上記を実行すると x = 0x12c, y = 0xab3 になるぞ。