有人可以向我解释如何在没有临时变量的情况下对两个变量进行XOR交换吗?
void xorSwap (int *x, int *y) { if (x != y) { *x ^= *y; *y ^= *x; *x ^= *y; } }
我明白它做了什么,但有人可以告诉我它是如何工作的逻辑吗?
language-agnostic bit-manipulation xor
bit-manipulation ×1
language-agnostic ×1
xor ×1