XOR en Python
-
Conseguir XOR en Python usando el operador
^
- Obtener XOR en Python usando operadores lógicos
-
Obtener XOR en Python usando el método
xor()
incorporado
Este tutorial explicará múltiples formas de realizar la operación XOR (OR exclusivo) sobre dos variables en Python. La operación XOR se suele utilizar en diferentes protocolos como en la comprobación de errores o en situaciones en las que no queremos que dos condiciones sean verdaderas al mismo tiempo.
Conseguir XOR en Python usando el operador ^
El operador ^
en Python es para el XOR a nivel de bits y también se puede utilizar en booleanos. Los siguientes ejemplos de código demuestran cómo podemos realizar la operación XOR en los booleanos y la operación XOR a nivel de bits en los enteros.
Ejemplo de operación XOR en Python 1:
a = bool(1)
b = bool(0)
print(a ^ b)
Producción :
True
Operación XOR en Python Ejemplo 2:
a = 3
b = 5
print(a ^ b)
Producción :
6
3
en binario es 0b11
y 5
es 0b101
, por lo que el XOR de 0b011
y 0b101
será 0b110
, que es 6
en decimal.
Obtener XOR en Python usando operadores lógicos
Podemos implementar un método xor()
definido por el usuario utilizando operadores lógicos en Python. El siguiente ejemplo de código muestra cómo podemos implementar el método xor()
en booleanos utilizando los operadores and
, or
y not
en Python.
Código de ejemplo:
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))
Producción :
False
True
True
False
Obtener XOR en Python usando el método xor()
incorporado
El método xor()
del módulo operator
de Python también puede utilizarse para obtener el XOR de booleanos y enteros. La funcionalidad del método xor()
en Python es la misma que la del operador ^
. También realiza la operación XOR a nivel de bits en los enteros y la operación XOR en los booleanos. El siguiente código de ejemplo explica cómo utilizar el método xor()
para aplicar XOR en booleanos y enteros.
from operator import xor
print(xor(bool(0), bool(0)))
print(xor(5, 3))
Producción :
False
6