Trocar dois valores de variáveis

Digamos que temos duas variáveis ae bqueremos trocar seus valores:

int a = 5;
int b = 9;

De maneira clássica, geralmente usamos uma tmpvariável temporária para nos ajudar a fazer o truque:

int tmp = a;     // tmp = 5
a
= b; // a = 9
b
= tmp; // b = 5

Isso também é possível sem usar tmp. Só precisamos fazer algumas operações de bit XOR:

a = a xor b;      // a = 12
b
= a xor b; // b = 5
a
= a xor b; // a = 9

Leia o artigo completo em http://betterexplained.com .