Я нашел этот код для замены двух чисел без использования третьей переменной с помощью оператора XOR ^
.
Код:
int i = 25;
int j = 36;
j ^= i;
i ^= j;
j ^= i;
Console.WriteLine("i:" + i + " j:" + j);
//numbers Swapped correctly
//Output: i:36 j:25
Теперь я изменил приведенный выше код на этот эквивалентный код.
Мой код:
int i = 25;
int j = 36;
j ^= i ^= j ^= i; // I have changed to this equivalent (???).
Console.WriteLine("i:" + i + " j:" + j);
//Not Swapped correctly
//Output: i:36 j:0
Теперь, я хочу знать, Почему мой код дает неверный вывод?