Может кто-нибудь объяснить мне, как работает XOR замена двух переменных без изменения temp?
void xorSwap (int *x, int *y)
{
if (x != y) {
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
}
Я понимаю, ЧТО это делает, но может ли кто-нибудь пройти меня через логику того, как это работает?