Wenn ich XOR 2 Zahlen, bekomme ich nur identische Ergebnisse, wenn die Zahlen gleich sind?
-
21-09-2019 - |
Frage
Zum Beispiel nehme ich an x XOR y = y XOR x = z
haben. Ist es möglich, so etwas wie a XOR b = z
zu haben?
Lösung
Ja.
z = y
weil x ^ y ^ x = y
So ist es durchaus möglich, dass eine Kombination a ^ b = y = z
.
In der Tat, für jeden a
existiert eine b
so dass a ^ b = z
. Zu berechnen, dass, b = z ^ a
.
Beachten Sie, dass XOR kommutativ . Dies bedeutet, dass x ^ y
= y ^ x
Andere Tipps
Kurze Antwort: Ja
Lange Antwort: XOR ist eine binäre Operation, es auf die einzelnen Bits funktioniert und es ist kommutativ.
Es hat die Wahrheitstabelle:
A B Q
0 0 0
0 1 1
1 0 1
1 1 0
Da die Zahl aus diesen Bits gemacht wird, dann wird das Ergebnis das gleiche sein, solange für jede Bit-Position der zwei Bits das gleiche Ergebnis. Zum Beispiel nimmt die zwei Acht-Bit-Nummern 113 und 42
113 = 01110001
42 = 00101010
XOR = 01011011 = 91
aber wenn ich das vierte Bit von der Swap-links ich
97 = 01100001
58 = 00111010
XOR = 01011011 = 91
Also ja wieder ...
Ja. Als entartet Beweis, eine Zahl mit sich selbst XOR-Verknüpfung ergibt immer 0.
XOR, wird return true, wenn beide Parameter unterschiedlich sind, unter der Annahme, dass die Parameter ohnehin Boolesche Werte sind. Dies unterscheidet sich von oder, was wahr zurück, wenn entweder Parameter wahr ist, und NOR, die nur wahr zurück, wenn beide falsch sind.