Wie tausche ich zwei Zahlen ohne Verwendung von temporären Variablen oder arithmetischen Operationen?

Diese Gleichung tauscht zwei Zahlen ohne temporäre Variable aus, verwendet jedoch arithmetische Operationen:

a = (a+b) - (b=a);

Wie kann ich das ohne arithmetische Operationen machen? Ich habe über XOR nachgedacht.