Cheaper: Variablenwerte mit Xor vertauschen

Beitrag lesen

int x = 12,
    y = 49;
x ^= y;  // x = x ^ y
y ^= x;  // y = y ^ x
x ^= y;  // x = x ^ y
System.out.println( x + " " + y );  // Ausgabe ist: 49 12

kann mir das einer für Anfänger erklären??

MfG Cheaper