Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Brauche hilfestellung in Java (Werte tauschen)

(Anonym) / 5 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
Anonym (Anonym) „Brauche hilfestellung in Java (Werte tauschen)“
Optionen

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.

bei Antwort benachrichtigen
(Anonym) Anonym „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...“
Optionen

Das Habe ich nicht ganz verstanden.

Kannst du mir das mal richtig erklären ????

bei Antwort benachrichtigen
Anonym (Anonym) „Das Habe ich nicht ganz verstanden. Kannst du mir das mal richtig erklären ???? “
Optionen

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

bei Antwort benachrichtigen
KKND2 (Anonym) „Brauche hilfestellung in Java (Werte tauschen)“
Optionen

hehehehehe.. die typischen assembler befehle

ASM rulezzz

bei Antwort benachrichtigen
LECHZ (Anonym) „Brauche hilfestellung in Java (Werte tauschen)“
Optionen

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

bei Antwort benachrichtigen