Здравствуйте, 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
Этот алгоритм основан на свойствах любой коммутативной группы, и нулевые элементы здесь не причём.