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.941 Themen, 20.708 Beiträge
x = x XOR y
y = y XOR x (also: y XOR x XOR y = x)
x = x XOR y (also: x XOR y XOR y XOR x XOR y = y)
mfg. j.
Das Habe ich nicht ganz verstanden.
Kannst du mir das mal richtig erklären ????
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
hehehehehe.. die typischen assembler befehle
ASM rulezzz
Hallo ...
es kommt darauf an ... es gibt in einigen ProgSprachen auch befehle um zwei Variablen zu tauschen. Im alten qBasic z.B.
a = 3
b = 2
SWAP a, b
Ergebnis:
a = 2
b = 3
Vielleicht einfach mal in der Hilfe der Sprache nachschauen ...
Viel Glück