Zahlen tauschen
-
Den Beitrag mit dem Query 'Bitverknüpfung' zu übersehn ist unmöglich.
Aber damit hab ich auch ne arithmetische Lösung, muss man erstmal drauf kommen.
Kennts du ne Addy wo ich in paar Informationen zu Bitverknüfungen finde. Da ich mein C aus Tutorials lerne und ich das noch nie benötigt hab, hab ich keine Ahnung von.
-
im grunde wie in technischer informatik die und/oder/xor/etc.. verknüpfungen
http://www.pronix.de/modules/C/openbook/c_programmierung_9.php#5
-
#include <stdio.h> int main(void) { int a = 23, b = 27331; printf("a = %d, b = %d\n", a, b); a ^= b; b ^= a; a ^= b; printf("a = %d, b = %d\n", a, b); }
-
a^=b^=a^=b;
Danke, steht aber schon in dem anderem Thread. Und dank des Links hab ich es auch verstanden
[CLOSE]
-
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
-
das geht aber eigentlich mit allen Grundrechenarten.
a = a + b;
b = -( b - a);
a = a - b;oder seh ich das jetz falsch ?
-
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind rechtsassoziativ.
@DocJunior: Mathematisch ist das richtig, aber auf die Art kriegst du mit dem Computer Probleme, wenn dir die Variable überläuft.
-
0xdeadbeef schrieb:
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind
... keine Sequenzpunkte. Wie oft wird a verändert? Eben, eben.
-
Ach, stimmt - du hast natürlich recht. Hab ich mir wohl die Hirnwindungen in die falsche Richtung verrenkt...
-
Daniel E. schrieb:
0xdeadbeef schrieb:
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind
... keine Sequenzpunkte. Wie oft wird a verändert? Eben, eben.
Erklär mir mal was du meinst
-
-
danke