logo

XOR van twee variabelen in Python

De XOR of exclusive is een Booleaanse logische bewerking die veel wordt gebruikt in cryptografie en die pariteitsbits genereert voor foutcontrole en fouttolerantie. De bewerking neemt twee inputs in beslag en produceert een enkele output. De bewerking is traditioneel bitgewijs, maar kan ook logisch worden uitgevoerd. In dit artikel leert u hoe u de logische XOR van twee variabelen kunt invoeren Python .

XOR van twee getallen

Omdat XOR een bitsgewijze operator , zal het bits van beide gehele getallen beetje bij beetje vergelijken nadat ze in binaire getallen zijn omgezet. De waarheidstabel voor XOR (binair) wordt hieronder weergegeven:



ABA⊕B
110
011
101
000

De formule voor XOR-bewerking is:

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

Het uitvoeren van de XOR van twee gehele getallen is triviaal in Python, omdat de taal speciaal voor dit doel een operator biedt, namelijk een dakje ^. Maar deze handeling kan ook worden bereikt door de operatormodule in Python te gebruiken.

Opmerking: Een paar dingen om te onthouden tijdens het uitvoeren van de xor-bewerking:



mediatransmissie
  • De XOR mag zich alleen tussen homogene elementen bevinden, dat wil zeggen dat hun datatype hetzelfde moet zijn.
  • De bool van een string resulteert in WAAR als de tekenreeks niet leeg is en Vals als de tekenreeks leeg is.

Laten we nu de XOR-bewerking op verschillende datatypen in Python bekijken.

XOR op gehele getallen

De gehele getallen worden eerst omgezet in binaire getallen en vervolgens wordt elke bit met elkaar vergeleken. Het uiteindelijke antwoord wordt vervolgens opnieuw omgezet naar de oorspronkelijke gehele vorm. De volgende code demonstreert het gebruik van een dakje voor het uitvoeren van de XOR van twee integer-variabelen.

Voorbeeld: Eerst werden twee variabelen geïnitialiseerd met 10 en 27 gehele waarden. Vervolgens wordt de xor van de twee variabelen verkregen met behulp van de caret-operator. Het resultaat van de bewerking wordt weergegeven.



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

Uitgang:

17>

Tijdcomplexiteit: O(1)

Ruimtecomplexiteit: O(1)

XOR op Booleaanse waarde

De XOR van twee Booleaanse variabelen is vrij eenvoudig. De uitvoer van de XOR-bewerking is 0 of 1, wat respectievelijk True of Flase vertegenwoordigt in booleaans formaat. Om de logische XOR van het booleaanse gegevenstype te verkrijgen, wordt dus True of False opgegeven als invoerwaarden.

Voorbeeld: Eerst werden twee Booleaanse variabelen geïnitialiseerd met een waarde en vervolgens werd de XOR-bewerking daarop uitgevoerd met behulp van de inlay-operator.

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

Uitgang:

True>

Tijdcomplexiteit: O(1)

Ruimtecomplexiteit: O(1)

XOR op String

Omdat tekenreeksen een reeks zijn, moet het gegevenstype worden genormaliseerd voordat de bewerking erop kan worden uitgevoerd. Daarom zouden de strings worden geconverteerd naar bool, en vervolgens zou de xor-bewerking erop kunnen worden uitgevoerd. Maar hierdoor zou het resultaat van de bewerking binair zijn, dat wil zeggen dat het in een van beide zou resulteren WAAR of Vals (in tegenstelling tot xor van gehele getallen waarbij de resulterende waarde wordt geproduceerd).

Voorbeeld: Eerst worden twee strings gedefinieerd. Eén ervan is een lege string. Vervolgens worden de strings geconverteerd naar het booleaanse gegevenstype en wordt de xor-bewerking daarop uitgevoerd. Het resultaat wordt weergegeven.

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

Uitgang:

True>

Tijdcomplexiteit: O(n)

Ruimtecomplexiteit: O(n), waarbij n de lengte van de string is

methode overbelasting

XOR van twee variabelen met behulp van de Operator Module

Python heeft een operatormodule, die een reeks vooraf gedefinieerde functies biedt voor rekenkundige, logische, bitsgewijze en vergelijkingsoperatoren. Het biedt ook de XOR-functie van de bitsgewijze operator die kan worden gebruikt om de XOR van twee variabelen te verkrijgen.

Voorbeeld: Importeer eerst de bedieningsmodule. Vervolgens worden twee variabelen geïnitialiseerd met een waarde en vervolgens wordt de XOR-bewerking daarop uitgevoerd met behulp van de xor-functie van de operatormodules.

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

Uitgang:

17>

Tijdcomplexiteit: O(1)

Ruimtecomplexiteit: O(1)

Twee gehele getallen verwisselen met XOR zonder tijdelijke variabele

De bitsgewijze XOR-bewerking in Python kan ook worden gebruikt om twee gehele getallen om te wisselen zonder de tijdelijke variabele te gebruiken. Laten we eens kijken hoe dit werkt.

database met zuureigenschappen
a = a ^ b b = a ^ b a = a ^ b>

Voor het wisselen zijn drie expressies nodig met de XOR-bewerking.

  1. XOR de twee gehele getallen 'A' En ' B' en bewaar het resultaat ervan in het gehele getal 'A' zelf.
  2. Nu XOR de bijgewerkte waarde van 'A' met 'B'. Dit resulteert in de oorspronkelijke waarde van 'A' , die nu is opgeslagen in 'B' .
  3. Als laatste XOR 'A' met de nu bijgewerkte waarde van 'B' in de vorige stap. Het resultaat is de oorspronkelijke waarde van 'B' . die nu is opgeslagen 'A' .

Voorbeeld: Eerst worden twee gehele getallen geïnitialiseerd. Vervolgens wordt met behulp van de bovenstaande drie stappen het verwisselen van twee gehele getallen uitgevoerd met behulp van de XOR-caret-operator. Druk ten slotte de verwisselde gehele getallen af.

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

Uitgang:

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