Descubrí un buen truco para intercambiar los valores de dos variables sin tener que crear una variable auxiliar. Usaré javascript para ilustrarlo, aunque supongo que es independiente del lenguaje.
let a = 1; let b = 2; a^=b; b^=a; a^=b; console.log(a); // Prints 2 console.log(b); // Prints 1 ¿Alguien puede explicar cómo ocurre el intercambio? ¿Qué hace ^= ?