Приветствую Вас Гость | RSS

Reversing and Code

Пятница, 29.03.2024, 18:30
Главная » 2011 » Сентябрь » 13
На днях, переписывая один крипто компонент для Delphi, столкнулся со странной оптимизацией кода и алгоритма. В одном месте я увидел манипуляции с массивами, которые, если упростить, выглядели следующим образом:

a := a xor b;
b := b xor a;
a := a xor b;

Если при манипуляции с xor переменная встречается несколько раз, значит алгоритм подразумевает получение переменной в ее начальном состоянии. Для чего тут это нужно. Зная логику работы xor можно составить следующие выражения:

b := b xor (a xor b); что дает нам a
a := (a xor b) xor a; что дает нам b

Т.е. это всего лишь обмен местами двух переменных без использования промежуто ... Читать дальше »
Категория: Программирование в Delphi | Просмотров: 2539 | Добавил: PE_Kill | Дата: 13.09.2011 | Комментарии (3)