C++
Меняем значение переменных местами
Забавный факт. Сегодня узнал, что для того чтобы поменять значения двух переменных местами не обязательно пользоваться конструкцией:
tmp = var1; var1 = var2; var2 = tmp;
Можно просто выполнить три операции поразрядного исключающего ИЛИ:
var1 ^= var2; var2 ^= var1; var1 ^= var2;
P.S. Вспомнив азы булевой алгебры, проверил на листочке бумаги, таки работает =)