XOR eller exclusive er en boolesk logikoperation, der er meget brugt i kryptografi og genererer paritetsbits til fejlkontrol og fejltolerance. Operationen tager to input og producerer et enkelt output. Operationen er bitvis traditionelt, men kan også udføres logisk. Denne artikel vil lære dig, hvordan du får den logiske XOR af to variable ind Python .
XOR af to tal
Da XOR er en bitvise operator , vil den sammenligne bit for bit af begge heltal efter at have konverteret dem til binære tal. Sandhedstabellen for XOR (binær) er vist nedenfor:
| EN | B | A⊕B |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
Formlen for XOR-operation er:
XOR(A, B) = ( A .overline{B}) + (B.overline{A})>Udførelse af XOR af to heltal er trivielt i Python, da sproget tilbyder en operator, specielt til dette formål, nemlig en caret ^. Men denne operation kan også opnås ved at bruge operatørmodulet i Python.
Bemærk: Et par ting at huske, mens du udfører xor-operationen:
blokere annoncer på youtube android
- XOR bør kun være mellem homogene elementer, dvs. deres datatype skal være den samme.
- Bool af en streng vil resultere i Rigtigt hvis strengen ikke er tom og Falsk hvis strengen er tom.
Lad os nu se XOR-operationen på forskellige datatyper i Python.
XOR på heltal
Heltallene konverteres først til binære tal og derefter sammenlignes hver bit med hinanden. Det endelige svar konverteres så igen tilbage til den oprindelige heltalsform. Følgende kode demonstrerer brugen af en indikator til at udføre XOR af to heltalsvariabler.
Eksempel: Først blev to variable initialiseret indeholdende 10 og 27 heltalsværdier. Derefter opnås xor'en af de to variable ved hjælp af indikatoroperatoren. Resultatet af handlingen vises.
Python
# First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>
Produktion:
17>
Tidskompleksitet: O(1)
Rumkompleksitet: O(1)
XOR på Boolean
XOR af to booleske variable er ret simpel. Outputtet af XOR-operationen er enten 0 eller 1, som repræsenterer henholdsvis True eller Flase i boolesk format. For at få den logiske XOR af boolesk datatype angives enten True eller False som inputværdier.
Eksempel: Først blev to booleske variable initialiseret med en værdi, og derefter udføres XOR-operationen på dem ved hjælp af caret-operatoren.
Python # First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>
Produktion:
java print
True>
Tidskompleksitet: O(1)
Rumkompleksitet: O(1)
XOR på streng
Da strenge er en sekvens, skal datatypen normaliseres, for at handlingen kan udføres på dem. Derfor ville strengene blive konverteret til bool, og så kunne xor-operationen udføres på dem. Men på grund af dette ville resultatet af operationen være binært, dvs. det ville resultere i enten Rigtigt eller Falsk (i modsætning til xor af heltal, hvor den resulterende værdi produceres).
Eksempel: Først defineres to strenge. En af dem er en tom streng. Derefter konverteres strengene til den boolske datatype, og xor-operationen udføres på dem. Resultatet vises.
Python # First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>
Produktion:
True>
Tidskompleksitet: O(n)
Rumkompleksitet: O(n), hvor n er længden af strengen
algoritme for binær søgning
XOR af to variabler ved hjælp af operatørmodul
Python har et operatormodul, som giver et sæt foruddefinerede funktioner til aritmetiske, logiske, bitvise og sammenligningsoperatorer. Det giver også XOR-funktionen for den bitvise operator, som kan bruges til at få XOR for to variable.
Eksempel: Importer først operatørmodulet. Derefter initialiseres to variable med en værdi, og derefter udføres XOR-operationen på dem ved hjælp af operatørmodulernes xor-funktion.
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)>
Produktion:
17>
Tidskompleksitet: O(1)
Rumkompleksitet: O(1)
Bytning af to heltal ved hjælp af XOR uden midlertidig variabel
XOR bitvise operation i Python kan også bruges til at bytte to heltal uden at bruge den midlertidige variabel. Lad os se, hvordan dette fungerer.
a = a ^ b b = a ^ b a = a ^ b>
Bytning kræver tre udtryk med XOR-operationen.
bash sammenkæde strenge
- XOR de to heltal 'en' og ' b' og gemme resultatet i heltal 'en' sig selv.
- XOR nu den opdaterede værdi af 'en' med 'b'. Dette vil resultere i den oprindelige værdi af 'en' , som nu er gemt i 'b' .
- Til sidst, XOR 'en' med den nu opdaterede værdi på 'b' i forrige trin. Resultatet vil være den oprindelige værdi af 'b' . som nu er gemt i 'en' .
Eksempel: Først initialiseres to heltal. Ved hjælp af ovenstående tre trin udføres ombytningen af to heltal ved hjælp af XOR-markøroperatoren. Udskriv til sidst de ombyttede heltal.
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)> Produktion:
Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>