XOR en Python

Muhammad Waiz Khan 30 enero 2023
  1. Conseguir XOR en Python usando el operador ^
  2. Obtener XOR en Python usando operadores lógicos
  3. Obtener XOR en Python usando el método xor() incorporado
XOR en Python

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

Artículo relacionado - Python Operator