Re[6]: поменять местами A и B
От: IO Украина  
Дата: 15.10.04 13:07
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, tasman, Вы писали:


T>> Вариант с xor не будет работать если (A==B) и (A!=0) Тогда после выполнения и в A и в B будут нули


К>Откуда такая уверенность?

К>
К>a=b=x;
К>a^=b; // a=x^x=0
К>b^=a; // b=x^0=x
К>a^=b; // a=0^x=x
К>


К>Этот алгоритм основан на свойствах любой коммутативной группы, и нулевые элементы здесь не причём.

Воббще xor дает ответ на вопрос "разные ли биты?" в виде бита 1 или 0. С таким же успехом можно использовать ответ на вопрос "одинаковые ли биты?". Напр. в виде логического NOT (инвертирование) на результат XOR.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.