Вот так вота
Выполните
int x = 1984;
int y = 2001;
string binaryX = Convert.ToString(x, 2);
string binaryY = Convert.ToString(y, 2);
Console.WriteLine("binaryX = " + binaryX + "; binaryY = " + binaryY);
x ^= y ^= x = y;
Console.WriteLine("x = " + x + "; y = " + y);
binaryX и binaryY - это представления чисел в двоичном коде
Оператор ^ берет два числа делает побитовое
исключающее или
Оператор ^= выполняет исключающее или для левого и правого аргумента и записывает результат сразу в левый (как операторы *=, += и т.д.)
Что касается хвоста x = y, то нужно помнить, что оператор = тоже возвращает значение. Для проверки:
int a;
Console.WriteLine(a = 3);
Ну и не забывайте про приоритет выполнения операций