Меняем значение переменных местами

Забавный факт. Сегодня узнал, что для того чтобы поменять значения двух переменных местами не обязательно пользоваться конструкцией:

tmp = var1;
var1 = var2;
var2 = tmp;

Можно просто выполнить три операции поразрядного исключающего ИЛИ:

var1 ^= var2;
var2 ^= var1;
var1 ^= var2;

P.S. Вспомнив азы булевой алгебры, проверил на листочке бумаги, таки работает =)

One Response to “Меняем значение переменных местами”

  1. SLIPPERY says:

    Э;-)
    мы такой способ использовали еще в ассемблере для сортировки массива на ЕС-1020 в одна тыща девятьсот… 80 году.

Leave a Reply




*