logo

XOR dveh spremenljivk v Pythonu

XOR ali ekskluzivno je logična logična operacija, ki se pogosto uporablja v kriptografiji in ustvarja paritetne bite za preverjanje napak in toleranco napak. Operacija sprejme dva vhoda in ustvari en sam izhod. Operacija je bitna tradicionalno, vendar bi se lahko izvajala tudi logično. Ta članek vas bo naučil, kako pridobiti logični XOR dveh spremenljivk Python .

XOR dveh števil

Ker je XOR a bitni operater , bo primerjal bite obeh celih števil po bitih, potem ko jih bo pretvoril v binarna števila. Tabela resnic za XOR (binarni) je prikazana spodaj:

ABA⊕B
110
011
101
000

Formula za operacijo XOR je:



XOR(A, B) = ( A .overline{B}) + (B.overline{A})>

Izvajanje XOR dveh celih števil je v Pythonu trivialno, saj jezik ponuja operator, posebej za ta namen, in sicer kazalko ^. Toda to operacijo je mogoče doseči tudi z uporabo operaterskega modula v Pythonu.

Opomba: Med izvajanjem operacije xor si morate zapomniti nekaj stvari:

mizo iz lateksa
  • XOR naj bo samo med homogenimi elementi, tj. njihov podatkovni tip mora biti enak.
  • Bool niza bo povzročil Prav če je niz neprazen in False če je niz prazen.

Zdaj pa si oglejmo operacijo XOR na različnih tipih podatkov v Pythonu.

XOR na celih številih

Cela števila se najprej pretvorijo v binarna števila, nato pa se vsak bit med seboj primerja. Končni odgovor se nato spet pretvori nazaj v izvirno celoštevilsko obliko. Naslednja koda prikazuje uporabo kazalke za izvajanje XOR dveh celih spremenljivk.

primer: Najprej sta bili inicializirani dve spremenljivki, ki sta vsebovali 10 in 27 celih vrednosti. Nato se xor obeh spremenljivk pridobi z uporabo kazalke. Prikaže se rezultat operacije.

Python
# First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>

Izhod:

17>

Časovna zahtevnost: O(1)

Prostorska kompleksnost: O(1)

XOR na Boolean

XOR dveh logičnih spremenljivk je precej preprost. Rezultat operacije XOR je 0 ali 1, kar predstavlja True oziroma Flase v logični obliki. Zato je za pridobitev logičnega XOR logičnega podatkovnega tipa kot vhodna vrednost podana True ali False.

algoritem globinsko iskanje

primer: Najprej sta bili dve logični spremenljivki inicializirani z vrednostjo, nato pa se nad njima izvede operacija XOR z uporabo kazalke.

Python
# First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>

Izhod:

True>

Časovna zahtevnost: O(1)

Prostorska kompleksnost: O(1)

XOR na nizu

Ker so nizi zaporedje, je treba tip podatkov normalizirati, da se na njih izvede operacija. Zato bi bili nizi pretvorjeni v bool, nato pa bi lahko na njih izvedli operacijo xor. Toda zaradi tega bi bil rezultat operacije binarni, tj. rezultat bi bil bodisi Prav oz False (za razliko od xor celih števil, kjer se ustvari rezultantna vrednost).

primer: Najprej sta definirana dva niza. Eden od njih je prazen niz. Nato se nizi pretvorijo v logični podatkovni tip in na njih se izvede operacija xor. Prikaže se rezultat.

Python
# First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>

Izhod:

True>

Časovna zahtevnost: O(n)

tostring metoda java

Kompleksnost prostora: O(n), kjer je n dolžina niza

XOR dveh spremenljivk z uporabo operaterskega modula

Python ima operaterski modul, ki ponuja nabor vnaprej določenih funkcij za aritmetične, logične, bitne in primerjalne operatorje. Ponuja tudi funkcijo XOR bitnega operatorja, ki se lahko uporabi za pridobitev XOR dveh spremenljivk.

primer: Najprej uvozite operaterski modul. Nato sta dve spremenljivki inicializirani z vrednostjo in nato se na njima izvede operacija XOR s funkcijo xor operaterskih modulov.

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)>

Izhod:

17>

Časovna zahtevnost: O(1)

abecedne številke

Prostorska kompleksnost: O(1)

Zamenjava dveh celih števil z uporabo XOR brez začasne spremenljivke

Bitno operacijo XOR v Pythonu lahko uporabite tudi za zamenjavo dveh celih števil brez uporabe začasne spremenljivke. Poglejmo, kako to deluje.

a = a ^ b b = a ^ b a = a ^ b>

Zamenjava zahteva tri izraze z operacijo XOR.

  1. XOR dve celi števili 'a' in ' b' in shrani rezultat v celem številu 'a' sama.
  2. Zdaj XOR posodobljeno vrednost 'a' z 'b'. To bo povzročilo prvotno vrednost 'a' , ki je zdaj shranjena v 'b' .
  3. Nazadnje, XOR 'a' z zdaj posodobljeno vrednostjo 'b' v prejšnjem koraku. Rezultat bo prvotna vrednost 'b' . ki je zdaj shranjena v 'a' .

primer: Najprej se inicializirata dve celi števili. Nato se z uporabo zgornjih treh korakov zamenjava dveh celih števil izvede z uporabo kazalke XOR. Nazadnje natisnite zamenjana cela števila.

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)>

Izhod:

Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>