Die XOR Funktion hat folgende Wertetabelle
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Wendet man die XOR Funktion bitweise auf ein Zeichen
an, so ergeben sich interessante Eingenschaften:
(a XOR b) XOR b = a
Die Funktion wird daher auch gerne für minimal
Verschluessellung eingesetzt.
Diese Eigenschaft nutzt das Tauschen
Variable a und b sollen getauscht werden:
a = a XOR b
soweit so gut
b = b XOR a
Was passiert hier... a enthält ja bereits den Wert
(a XOR b). Die Zuweisung lautet also eigentlich
b = b XOR a XOR b
oder umgestellt
b = a XOR b XOR b
Was wie oben ausgeführt identisch mit a ist. Der erste
Tausch war also bereits erfolgreich.
Die letzte Zuweisung
a = a XOR b
Läßt sich auch schreiben als
a = (a XOR b) XOR a
Die Variable b enthält ja bereits den Wert von "a" und
"a" hat z.Z. den Inhalt a XOR b.
umgestellt also
a = b XOR a XOR a
also b. Die Variablen sind getauscht.
mfg. j - www.obira.de