XOR in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Ottieni XOR in Python usando l’operatore ^
  2. Ottieni XOR in Python usando gli operatori logici
  3. Ottieni XOR in Python usando il metodo xor() integrato
XOR in Python

Questo tutorial spiegherà diversi modi per eseguire l’operazione XOR (OR esclusivo) su due variabili in Python. L’operazione XOR viene solitamente utilizzata in diversi protocolli come nel controllo degli errori o in situazioni in cui non vogliamo che due condizioni siano vere allo stesso tempo.

Ottieni XOR in Python usando l’operatore ^

L’operatore ^ in Python è per XOR bit per bit e può essere utilizzato anche su valori booleani. Gli esempi di codice seguenti dimostrano come è possibile eseguire operazioni XOR sui booleani e operazioni XOR bit per bit sugli interi.

Esempio di operazione XOR di Python 1:

a = bool(1)
b = bool(0)
print(a ^ b)

Produzione:

True

Esempio di operazione Python XOR 2:

a = 3
b = 5
print(a ^ b)

Produzione:

6

3 in binario è 0b11 e 5 è 0b101, quindi lo XOR di 0b011 e 0b101 sarà 0b110, ovvero 6 in decimale.

Ottieni XOR in Python usando gli operatori logici

Possiamo implementare un metodo xor() definito dall’utente utilizzando operatori logici in Python. L’esempio di codice seguente mostra come implementare il metodo xor() su valori booleani utilizzando gli operatori and, or e not in Python.

Codice di esempio:

def xor(x, y):
    return bool((x and not y) or (not x and y))


print(xor(0, 0))
print(xor(0, 1))
print(xor(1, 0))
print(xor(1, 1))

Produzione:

False
True
True
False

Ottieni XOR in Python usando il metodo xor() integrato

Il metodo xor() del modulo operator di Python può anche essere usato per ottenere XOR di booleani e interi. La funzionalità del metodo xor() in Python è la stessa dell’operatore ^. Esegue anche operazioni XOR bit per bit su numeri interi e operazioni XOR su valori booleani. Il codice di esempio seguente spiega come utilizzare il metodo xor() per applicare XOR su valori booleani e interi.

from operator import xor

print(xor(bool(0), bool(0)))
print(xor(5, 3))

Produzione:

False
6

Articolo correlato - Python Operator