Geht Varialeninhalte tauschen auch irgendwie anders?
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
XOR bedeutet "exclusives oder", d.h. nur wenn genau einer der beiden Operanden 1 ist, ist auch das Ergebnis 1.
Also
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
oder, für dein (mein) Beispiel:
50 ^ 10 = 56
0011 0010 ^ 0000 1010 = 0011 1000
Also
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
oder, für dein (mein) Beispiel:
50 ^ 10 = 56
0011 0010 ^ 0000 1010 = 0011 1000
It's as simple as that. And remember, Beethoven wrote his first symphony in C.
-
- Beiträge: 76
- Registriert: Mo Jul 29, 2013 2:26 pm
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Das würde für meine Logik jetzt bedeuten, XOR wäre eine Werteinvertierung ...
Verwechsle niemals Freie Software mit Freeware - da gibt es markante Unterschiede. Freie Software kann Geld kosten, Freeware ist aber selten frei.
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Ähm, nö. Vielleicht solltest Du mal deine Logik überdenkenProgBeginner hat geschrieben:Das würde für meine Logik jetzt bedeuten, XOR wäre eine Werteinvertierung ...

XOR ist XOR. Das Ergebnis ist genau dann 1, wenn genau einer der Operanden 1 ist. Man kann auch sagen, genau dann, wenn die Operanden unterschiedlich sind.
und:
man kann damit (und einer zusätzlichen UND-Verknüpfung, die ein evt. Carry hält) addieren. Die Wahrheitstabelle von "+" und "^" ist für einstellige Binärzahlen identisch. Damit lässt sich ein Addierer für beliebig lange Binärzahlen bauen:
Code: Alles auswählen
s1 = '0111' # 7
s2 = '0100' # 4
s3 = ''
carry = 0
summe = ''
for i in range (len(s1) - 1, -1, -1):
summe = int(s1[i]) ^ int(s2[i]) ^ carry
carry = int(s1[i]) & int(s2[i])
s3 = unichr(summe + ord('0')) + s3
print 'Ergebnis=', s3 # 7 + 4 = 11 -> 1011
It's as simple as that. And remember, Beethoven wrote his first symphony in C.
-
- Beiträge: 76
- Registriert: Mo Jul 29, 2013 2:26 pm
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Das Spielchen, über das wir hier philosophieren, kann man sich übrigens gerne unter
herunterladen - ist nicht sonderlich groß.
Über Verbesserungsvorschläge am Code bin ich jederzeit dankbar, das ist mein erstes Python-Projekt, was n bisschen mehr hergibt, als einfach nur "Hello World" auszugeben - von daher: I'm still learning
Code: Alles auswählen
git clone https://github.com/SaschaMester/Zahlenraten
Über Verbesserungsvorschläge am Code bin ich jederzeit dankbar, das ist mein erstes Python-Projekt, was n bisschen mehr hergibt, als einfach nur "Hello World" auszugeben - von daher: I'm still learning

Verwechsle niemals Freie Software mit Freeware - da gibt es markante Unterschiede. Freie Software kann Geld kosten, Freeware ist aber selten frei.
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Logisches UND vs Bitweises UND:
Logisches UND kennt nur zwei Werte: Wahr und Falsch. Das wird wohl das sein, das dein Taschenrechner kann.
Bitweises UND verknüpft die einzelnen Bits der (Integer-)Zahlen miteinander.
Das sollte es ein wenig verständlicher machen. (Gilt genauso mit ODER oder XODER).
Logisches UND kennt nur zwei Werte: Wahr und Falsch. Das wird wohl das sein, das dein Taschenrechner kann.
Bitweises UND verknüpft die einzelnen Bits der (Integer-)Zahlen miteinander.
Das sollte es ein wenig verständlicher machen. (Gilt genauso mit ODER oder XODER).
-
- Beiträge: 76
- Registriert: Mo Jul 29, 2013 2:26 pm
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Dass bei Python ^ ein Operator für XOR ist, ist allerdings auch verwirrend.
^ kenn ich aus anderen Sprachen als Operator für Potenzrechnung.
^ kenn ich aus anderen Sprachen als Operator für Potenzrechnung.
Verwechsle niemals Freie Software mit Freeware - da gibt es markante Unterschiede. Freie Software kann Geld kosten, Freeware ist aber selten frei.
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Ich kenn' längst nicht alle, aber mir würde auf Anhieb keine (vernünftige) Programmiersprache einfallen, die '^' für die Potenzierung benutztProgBeginner hat geschrieben:...^ kenn ich aus anderen Sprachen als Operator für Potenzrechnung.

It's as simple as that. And remember, Beethoven wrote his first symphony in C.
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Mir fällt auf Anhieb keine ein. Bei welchen ist das so?ProgBeginner hat geschrieben:^ kenn ich aus anderen Sprachen als Operator für Potenzrechnung.
Bei den meisten wird ** als Potenzierung benutzt, sofern es überhaupt direkt als Operator verfügbar ist.
Bei LaTeX wird es als Hochstellung benutzt, allerdings hat das nicht viel mit Programmierung zu tun.
-
- Beiträge: 76
- Registriert: Mo Jul 29, 2013 2:26 pm
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Stimmt ... doch nicht, ich muss mich korrigieren.
Hatte das von PHP so in Erinnerung - aber auch Erinnerungen können sich täuschen.
Nobody's perfect oder wie war dat
Langer Rede kurzer Sinn - hab nix gesagt ( bzgl ^ ) - alles zurück auf 0

Hatte das von PHP so in Erinnerung - aber auch Erinnerungen können sich täuschen.

Nobody's perfect oder wie war dat

Langer Rede kurzer Sinn - hab nix gesagt ( bzgl ^ ) - alles zurück auf 0

Verwechsle niemals Freie Software mit Freeware - da gibt es markante Unterschiede. Freie Software kann Geld kosten, Freeware ist aber selten frei.
Re: Geht Varialeninhalte tauschen auch irgendwie anders?
Hab doch eine gefunden: D benutzt ^^ als Exponential-Operator. Außerdem kann man in vielen Funktionalen Sprachen das ^ oder ^^ als Funktionsname benutzen (dort ist ja alles eine Funktion, es gibt quasi kene Operatoren).
Siehe auch: http://rosettacode.org/wiki/Exponentiation_operator
Siehe auch: http://rosettacode.org/wiki/Exponentiation_operator