Hallo
Ich habe folgendes Problem:
Ich habe 2 Werte (X und Y) und die sollen getauscht werden !!!
Ohne das ich eine neue Variable deklariere.
int x=5;
int y=10;
Am Ende der progs soll der x Wert 10 sein und y Wert 5.
Wie macht man das das soll ganz einfach sein aber ich bekomme es nicht hin !!
Danke im voraus
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
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