# Обмен двух переменных через XOR

Чтобы поменять местами значения двух целочисленных переменных кроме как через использование дополнительной переменной, можно сделать так:

    a += b;
    b = a - b;
    a -= b;

Интересно разве что с академической точки зрения. Но есть способ интереснее:

    a ^= b ^= a ^= b;

который также меняет местами значения этих переменных.

Update: В комментариях подсказали грамотную ссылку (Bit Twiddling Hacks) по трюкам с битовой арифметикой.

Оригинальный пост | Disclaimer

# Комментарии