logo

XOR av två variabler i Python

XOR eller exklusiv är en boolesk logikoperation som ofta används i kryptografi och genererar paritetsbitar för felkontroll och feltolerans. Operationen tar in två ingångar och producerar en enda utgång. Operationen är bitvis traditionellt men skulle också kunna utföras logiskt. Den här artikeln kommer att lära dig hur du får in den logiska XOR för två variabler Pytonorm .

XOR av två siffror

Eftersom XOR är en bitvis operator , kommer den att jämföra bitar av båda heltal bit för bit efter att ha konverterat dem till binära tal. Sanningstabellen för XOR (binär) visas nedan:



ABA⊕B
110
011
101
000

Formeln för XOR-operation är:

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

Att utföra XOR för två heltal är trivialt i Python, eftersom språket erbjuder en operator, speciellt för detta ändamål, nämligen en caret ^. Men denna operation kan också uppnås genom att använda operatörsmodulen i Python.

Notera: Några saker att komma ihåg när du utför xor-operationen:



groovy datorspråk
  • XOR bör endast vara mellan homogena element, d.v.s. deras datatyp ska vara densamma.
  • Bool av en sträng kommer att resultera i Sann om strängen inte är tom och Falsk om strängen är tom.

Låt oss nu se XOR-operationen på olika datatyper i Python.

XOR på heltal

Heltalen omvandlas först till binära tal och sedan jämförs varje bit med varandra. Det slutliga svaret konverteras sedan igen tillbaka till den ursprungliga heltalsformen. Följande kod visar användningen av en indikator för att utföra XOR för två heltalsvariabler.

Exempel: Först initialiserades två variabler innehållande 10 och 27 heltalsvärden. Sedan erhålls xorn för de två variablerna med hjälp av caret-operatorn. Resultatet av operationen visas.



Pytonorm
# 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>

Tidskomplexitet: O(1)

Rymdkomplexitet: O(1)

XOR på Boolean

XOR för två booleska variabler är ganska enkel. Utdata från XOR-operationen är antingen 0 eller 1 som representerar True respektive Flase i booleskt format. Därför, för att få den logiska XOR för boolesk datatyp, tillhandahålls antingen True eller False som ingångsvärden.

sharwanand

Exempel: Först initialiserades två booleska variabler med ett värde och sedan utförs XOR-operationen på dem med hjälp av caret-operatorn.

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

Produktion:

True>

Tidskomplexitet: O(1)

Rymdkomplexitet: O(1)

XOR på sträng

Eftersom strängar är en sekvens måste datatypen normaliseras för att operationen ska kunna utföras på dem. Därför skulle strängarna konverteras till bool, och sedan kunde xor-operationen utföras på dem. Men på grund av detta skulle resultatet av operationen vara binärt, dvs det skulle resultera i antingen Sann eller Falsk (till skillnad från xor av heltal där resulterande värde produceras).

Exempel: Först definieras två strängar. En av dem är en tom sträng. Sedan konverteras strängarna till den booleska datatypen och xor-operationen utförs på dem. Resultatet visas.

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

Produktion:

True>

Tidskomplexitet: O(n)

Utrymmeskomplexitet: O(n), där n är strängens längd

iterera karta i java

XOR av två variabler med operatörsmodul

Python har en operatormodul som tillhandahåller en uppsättning fördefinierade funktioner för aritmetiska, logiska, bitvisa och jämförelseoperatorer. Den tillhandahåller också XOR-funktionen för den bitvisa operatorn som kan användas för att få XOR för två variabler.

Exempel: Importera först operatörsmodulen. Sedan initieras två variabler med ett värde och sedan utförs XOR-operationen på dem med hjälp av operatörsmodulernas xor-funktion.

Pytonorm
# 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>

Tidskomplexitet: O(1)

Rymdkomplexitet: O(1)

amrita rao skådespelare

Byta två heltal med XOR utan temporär variabel

XOR bitvis operation i Python kan också användas för att byta två heltal utan att använda den temporära variabeln. Låt oss se hur detta fungerar.

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

Byte kräver tre uttryck med XOR-operationen.

  1. XOR de två heltalen 'a' och ' b’ och lagra dess resultat i heltal 'a' sig.
  2. XOR nu det uppdaterade värdet på 'a' med 'b'. Detta kommer att resultera i det ursprungliga värdet på 'a' , som nu lagras i 'b' .
  3. Slutligen, XOR 'a' med det nu uppdaterade värdet på 'b' i föregående steg. Resultatet blir det ursprungliga värdet av 'b' . som nu lagras i 'a' .

Exempel: Först initieras två heltal. Sedan genom att använda de tre ovanstående stegen, görs bytet av två heltal med XOR-operatorn. Skriv slutligen ut de utbytta heltalen.

Pytonorm
# 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>