El XOR o exclusivo es una operación lógica booleana muy utilizada en criptografía y que genera bits de paridad para comprobación de errores y tolerancia a fallos. La operación toma dos entradas y produce una única salida. Tradicionalmente, la operación es bit a bit, pero también se puede realizar de forma lógica. Este artículo le enseñará cómo obtener el XOR lógico de dos variables en Pitón .
XOR de dos números
Como XOR es un operador bit a bit , comparará bits de ambos números enteros poco a poco después de convertirlos en números binarios. La tabla de verdad para XOR (binario) se muestra a continuación:
| A | B | A⊕B |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
La fórmula para la operación XOR es:
XOR(A, B) = ( A .overline{B}) + (B.overline{A})>Realizar el XOR de dos números enteros es trivial en Python, ya que el lenguaje ofrece un operador, especialmente para este propósito, a saber, un signo de intercalación ^. Pero esta operación también se puede lograr utilizando el módulo operador en Python.
Nota: Algunas cosas para recordar al realizar la operación xor:
aprendizaje automático y tipos
- El XOR sólo debe ser entre elementos homogéneos, es decir, su tipo de datos debe ser el mismo.
- El bool de una cadena dará como resultado Verdadero si la cadena no está vacía y FALSO si la cadena está vacía.
Ahora veamos la operación XOR en diferentes tipos de datos en Python.
XOR en números enteros
Los números enteros se convierten primero en números binarios y luego cada bit se compara entre sí. Luego, la respuesta final se vuelve a convertir a la forma entera original. El siguiente código demuestra el uso de un símbolo de intercalación para realizar el XOR de dos variables enteras.
Ejemplo: En primer lugar, se inicializaron dos variables que contenían 10 y 27 valores enteros. Luego, el xor de las dos variables se obtiene utilizando el operador de intercalación. Se muestra el resultado de la operación.
clave de periodoPitón
# First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>
Producción:
17>
Complejidad del tiempo: O (1)
Complejidad espacial: O (1)
XOR en booleano
El XOR de dos variables booleanas es bastante simple. La salida de la operación XOR es 0 o 1, lo que representa Verdadero o Flase respectivamente en formato booleano. Por lo tanto, para obtener el XOR lógico del tipo de datos booleano, se proporciona Verdadero o Falso como valores de entrada.
Ejemplo: En primer lugar, se inicializaron dos variables booleanas con un valor y luego se realiza la operación XOR sobre ellas utilizando el operador de intercalación.
Pitón # First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>
Producción:
True>
Complejidad del tiempo: O (1)
Complejidad espacial: O (1)
755 canales
XOR en cadena
Dado que las cadenas son una secuencia, el tipo de datos debe normalizarse para que se realice la operación en ellas. Por lo tanto, las cadenas se convertirían a bool y luego se podría realizar la operación xor en ellas. Pero debido a esto, el resultado de la operación sería binario, es decir, daría como resultado Verdadero o FALSO (a diferencia de xor de números enteros donde se produce el valor resultante).
Ejemplo: En primer lugar se definen dos cadenas. Uno de ellos es una cadena vacía. Luego, las cadenas se convierten al tipo de datos booleano y se realiza la operación xor en ellas. Se muestra el resultado.
Pitón # First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>
Producción:
True>
Complejidad del tiempo: O (n)
Complejidad espacial: O (n), donde n es la longitud de la cadena
XOR de dos variables usando el módulo operador
Python tiene un módulo de operador, que proporciona un conjunto de funciones predefinidas para operadores aritméticos, lógicos, bit a bit y de comparación. También proporciona la función XOR del operador bit a bit que se puede utilizar para obtener el XOR de dos variables.
Ejemplo: Primero importe el módulo de operador. Luego se inicializan dos variables con un valor y luego se realiza la operación XOR sobre ellas utilizando la función xor de los módulos de operador.
Pitón # 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)>
Producción:
mapa mecanografiado
17>
Complejidad del tiempo: O (1)
Complejidad espacial: O (1)
Intercambiar dos números enteros usando XOR sin variable temporal
La operación bit a bit XOR en Python también se puede utilizar para intercambiar dos números enteros sin utilizar la variable temporal. Veamos cómo funciona esto.
a = a ^ b b = a ^ b a = a ^ b>
El intercambio requiere tres expresiones con la operación XOR.
- XOR los dos números enteros 'a' y ' b' y almacenar su resultado en el número entero 'a' sí mismo.
- Ahora XOR el valor actualizado de 'a' con 'b'. Esto dará como resultado el valor original de 'a' , que ahora está almacenado en 'b' .
- Por último, XOR 'a' con el valor ahora actualizado de 'b' en el paso anterior. El resultado será el valor original de 'b' . que ahora está almacenado en 'a' .
Ejemplo: Primero se inicializan dos números enteros. Luego, utilizando los tres pasos anteriores, el intercambio de dos números enteros se realiza utilizando el operador de intercalación XOR. Finalmente, imprima los números enteros intercambiados.
Pitón # 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)> Producción:
Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>