XOR sau exclusiv este o operațiune logică booleană utilizată pe scară largă în criptografie și generatoare de biți de paritate pentru verificarea erorilor și toleranța la erori. Operația are două intrări și produce o singură ieșire. Operația este tradițională pe biți, dar ar putea fi efectuată și logic. Acest articol vă va învăța cum să introduceți XOR logic a două variabile Piton .
XOR a două numere
Deoarece XOR este un operator pe biți , va compara biți ai ambelor numere întregi bit cu bit după convertirea lor în numere binare. Tabelul de adevăr pentru XOR (binar) este prezentat mai jos:
| A | B | A⊕B |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
Formula pentru operarea XOR este:
XOR(A, B) = ( A .overline{B}) + (B.overline{A})>Efectuarea XOR a două numere întregi este banală în Python, deoarece limbajul oferă un operator, mai ales în acest scop, și anume un caret ^. Dar această operație poate fi realizată și prin utilizarea modulului operator în Python.
Notă: Câteva lucruri de reținut când efectuați operația xor:
programul sistemului
- XOR ar trebui să fie doar între elemente omogene, adică tipul lor de date ar trebui să fie același.
- Boolul unui șir va avea ca rezultat Adevărat dacă șirul nu este gol și Fals dacă șirul este gol.
Acum să vedem operația XOR pe diferite tipuri de date în Python.
XOR pe numere întregi
Numerele întregi sunt mai întâi convertite în numere binare și apoi fiecare bit este comparat unul cu altul. Răspunsul final este apoi convertit din nou în forma întregă originală. Următorul cod demonstrează utilizarea unui cursor pentru efectuarea XOR a două variabile întregi.
Exemplu: Mai întâi au fost inițializate două variabile care conțin 10 și 27 de valori întregi. Apoi xorul celor două variabile se obține folosind operatorul caret. Este afișat rezultatul operației.
Piton # First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>
Ieșire:
17>
Complexitatea timpului: O(1)
Complexitatea spațiului: O(1)
XOR pe boolean
XOR a două variabile booleene este destul de simplu. Ieșirea operației XOR este fie 0, fie 1, ceea ce reprezintă True sau Fase, respectiv, în format boolean. Prin urmare, pentru a obține XOR-ul logic al tipului de date boolean, este furnizat fie True, fie False ca valori de intrare.
Exemplu: Mai întâi au fost inițializate două variabile booleene cu o valoare și apoi operația XOR este efectuată asupra lor folosind operatorul caret.
Piton # First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>
Ieșire:
ekta kapoor actor
True>
Complexitatea timpului: O(1)
alfabet și numere
Complexitatea spațiului: O(1)
XOR pe String
Deoarece șirurile sunt o secvență, tipul de date trebuie să fie normalizat pentru ca operația să fie efectuată asupra lor. Prin urmare, șirurile ar fi convertite în bool, iar apoi operația xor ar putea fi efectuată asupra lor. Dar din această cauză, rezultatul operației ar fi binar, adică ar rezulta în oricare dintre ele Adevărat sau Fals (spre deosebire de xor de numere întregi în care se produce valoarea rezultată).
Exemplu: Mai întâi sunt definite două șiruri. Unul dintre ele este un șir gol. Apoi șirurile sunt convertite la tipul de date boolean, iar operația xor este efectuată asupra lor. Rezultatul este afișat.
Piton # First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>
Ieșire:
True>
Complexitatea timpului: O(n)
Complexitatea spațiului: O(n), unde n este lungimea șirului
XOR a două variabile folosind modulul operator
Python are un modul operator, care oferă un set de funcții predefinite pentru operatori aritmetici, logici, pe biți și de comparație. De asemenea, oferă funcția XOR a operatorului pe biți care poate fi folosită pentru a obține XOR a două variabile.
sigla java
Exemplu: Mai întâi importați modulul operator. Apoi două variabile sunt inițializate cu o valoare și apoi operația XOR este efectuată asupra lor folosind funcția xor a modulelor operator.
Piton # 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)>
Ieșire:
17>
Complexitatea timpului: O(1)
Complexitatea spațiului: O(1)
Schimbarea a două numere întregi folosind XOR fără variabilă temporară
Operația XOR pe biți în Python poate fi folosită și pentru a schimba două numere întregi fără a utiliza variabila temporară. Să vedem cum funcționează.
a = a ^ b b = a ^ b a = a ^ b>
Schimbarea necesită trei expresii cu operația XOR.
- XOR cele două numere întregi 'A' și ' b’ și stocați rezultatul acestuia în număr întreg 'A' în sine.
- Acum XOR valoarea actualizată a 'A' cu ‘b’. Aceasta va avea ca rezultat valoarea inițială a 'A' , care este acum stocat în ‘b’ .
- În cele din urmă, XOR 'A' cu valoarea acum actualizată a ‘b’ în pasul anterior. Rezultatul va fi valoarea inițială a ‘b’ . care acum este stocat în 'A' .
Exemplu: Mai întâi sunt inițializate două numere întregi. Apoi, folosind cei trei pași de mai sus, schimbarea a două numere întregi se face folosind operatorul XOR caret. În cele din urmă, tipăriți numerele întregi schimbate.
Piton # 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)> Ieșire:
Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>