Das XOR oder Exclusive ist eine boolesche Logikoperation, die in der Kryptographie weit verbreitet ist und Paritätsbits zur Fehlerprüfung und Fehlertoleranz generiert. Die Operation nimmt zwei Eingaben entgegen und erzeugt eine einzelne Ausgabe. Die Operation erfolgt traditionell bitweise, könnte aber auch logisch ausgeführt werden. In diesem Artikel erfahren Sie, wie Sie das logische XOR zweier Variablen erhalten Python .
XOR zweier Zahlen
Da XOR ein ist bitweiser Operator , vergleicht es Bits beider Ganzzahlen Stück für Stück, nachdem es sie in Binärzahlen umgewandelt hat. Die Wahrheitstabelle für XOR (binär) ist unten dargestellt:
A | B | A⊕B |
---|---|---|
1 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
0 | 0 | 0 |
Die Formel für die XOR-Operation lautet:
XOR(A, B) = ( A .overline{B}) + (B.overline{A})>
Die Durchführung der XOR-Verknüpfung zweier Ganzzahlen ist in Python trivial, da die Sprache speziell für diesen Zweck einen Operator anbietet, nämlich ein Caret ^. Diese Operation kann aber auch durch die Verwendung des Operatormoduls in Python erreicht werden.
Notiz: Bei der Ausführung der xor-Operation sollten Sie einige Dinge beachten:
Arraylist-Methoden
- Das XOR sollte nur zwischen homogenen Elementen erfolgen, d. h. ihr Datentyp sollte derselbe sein.
- Der boolesche Wert einer Zeichenfolge ergibt WAHR wenn die Zeichenfolge nicht leer ist und FALSCH wenn die Zeichenfolge leer ist.
Sehen wir uns nun die XOR-Operation für verschiedene Datentypen in Python an.
XOR für ganze Zahlen
Die Ganzzahlen werden zunächst in Binärzahlen umgewandelt und anschließend die einzelnen Bits miteinander verglichen. Die endgültige Antwort wird dann wieder in die ursprüngliche Ganzzahlform zurückkonvertiert. Der folgende Code demonstriert die Verwendung eines Caretzeichens zum Durchführen der XOR-Verknüpfung zweier ganzzahliger Variablen.
Beispiel: Zunächst wurden zwei Variablen initialisiert, die 10 und 27 Ganzzahlwerte enthielten. Dann wird das xor der beiden Variablen mithilfe des Caret-Operators ermittelt. Das Ergebnis des Vorgangs wird angezeigt.
Python
# First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>
Ausgabe:
17>
Zeitkomplexität: O(1)
Java-Länge des Arrays
Raumkomplexität: O(1)
XOR auf Boolesch
Das XOR zweier boolescher Variablen ist recht einfach. Die Ausgabe der XOR-Operation ist entweder 0 oder 1, was True bzw. Flase im booleschen Format darstellt. Um das logische XOR des booleschen Datentyps zu erhalten, werden daher entweder „True“ oder „False“ als Eingabewerte bereitgestellt.
Beispiel: Zunächst wurden zwei boolesche Variablen mit einem Wert initialisiert und anschließend mit dem Caret-Operator die XOR-Operation an ihnen durchgeführt.
Python # First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>
Ausgabe:
True>
Zeitkomplexität: O(1)
Raumkomplexität: O(1)
XOR auf String
Da es sich bei Zeichenfolgen um eine Sequenz handelt, muss der Datentyp normalisiert werden, damit die Operation an ihnen ausgeführt werden kann. Daher würden die Zeichenfolgen in bool konvertiert und dann könnte die xor-Operation an ihnen ausgeführt werden. Aus diesem Grund wäre das Ergebnis der Operation jedoch binär, d. h. sie würde zu einem der beiden Ergebnisse führen WAHR oder FALSCH (im Gegensatz zu xor von ganzen Zahlen, bei denen ein resultierender Wert erzeugt wird).
Beispiel: Zunächst werden zwei Strings definiert. Einer davon ist eine leere Zeichenfolge. Anschließend werden die Zeichenfolgen in den booleschen Datentyp konvertiert und die XOR-Operation für sie ausgeführt. Das Ergebnis wird angezeigt.
Java-TeilzeichenfolgePython
# First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>
Ausgabe:
True>
Zeitkomplexität: O(n)
Raumkomplexität: O(n), wobei n die Länge der Zeichenfolge ist
XOR von zwei Variablen mithilfe des Operatormoduls
Python verfügt über ein Operatormodul, das eine Reihe vordefinierter Funktionen für arithmetische, logische, bitweise und Vergleichsoperatoren bereitstellt. Es bietet auch die XOR-Funktion des bitweisen Operators, mit der das XOR zweier Variablen ermittelt werden kann.
Beispiel: Importieren Sie zunächst das Operatormodul. Anschließend werden zwei Variablen mit einem Wert initialisiert und anschließend mit der xor-Funktion der Operatormodule die XOR-Operation an ihnen ausgeführt.
Python # import module import operator # First integer a = 10 # Second integer b = 27 # Performing the xor using operator module xor = operator.xor(a,b) print(xor)>
Ausgabe:
17>
Zeitkomplexität: O(1)
Raumkomplexität: O(1)
Austauschen zweier Ganzzahlen mithilfe von XOR ohne temporäre Variable
Die bitweise XOR-Operation in Python kann auch verwendet werden, um zwei Ganzzahlen zu vertauschen, ohne die temporäre Variable zu verwenden. Lassen Sie uns sehen, wie das funktioniert.
a = a ^ b b = a ^ b a = a ^ b>
Für das Vertauschen sind drei Ausdrücke mit der XOR-Operation erforderlich.
Nummerierung des Alphabets
- XOR-Verknüpfung der beiden Ganzzahlen 'A' Und ' B' und das Ergebnis speichern in der ganzen Zahl 'A' selbst.
- Jetzt XOR den aktualisierten Wert von 'A' mit 'B'. Dadurch ergibt sich der ursprüngliche Wert von 'A' , das jetzt in gespeichert ist 'B' .
- Zuletzt XOR 'A' mit dem jetzt aktualisierten Wert von 'B' im vorherigen Schritt. Das Ergebnis ist der ursprüngliche Wert von 'B' . die jetzt gespeichert ist 'A' .
Beispiel: Zunächst werden zwei Ganzzahlen initialisiert. Mithilfe der oben genannten drei Schritte erfolgt dann der Austausch zweier Ganzzahlen mithilfe des XOR-Caret-Operators. Drucken Sie abschließend die vertauschten Ganzzahlen aus.
Python # First integer a = 10 # Second integer b = 27 print('Before Swapping:') print('a =', a) print('b =', b) # swapping integers using XOR a = a ^ b b = a ^ b a = a ^ b print('After Swapping:') print('a =', a) print('b =', b)>
Ausgabe:
Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>