logo

XOR de deux variables en Python

Le XOR ou exclusif est une opération logique booléenne largement utilisée en cryptographie et générant des bits de parité pour la vérification des erreurs et la tolérance aux pannes. L'opération prend en compte deux entrées et produit une seule sortie. L'opération est traditionnellement effectuée au niveau du bit, mais pourrait également être effectuée de manière logique. Cet article vous apprendra comment obtenir le XOR logique de deux variables dans Python .

XOR de deux nombres

Comme XOR est un opérateur au niveau du bit , il comparera les bits des deux entiers petit à petit après les avoir convertis en nombres binaires. La table de vérité pour XOR (binaire) est présentée ci-dessous :



UNBUNE⊕B
110
011
101
000

La formule pour l'opération XOR est la suivante :

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

Effectuer le XOR de deux entiers est trivial en Python, puisque le langage propose un opérateur, spécialement à cet effet, à savoir un caret ^. Mais cette opération peut également être réalisée en utilisant le module opérateur en Python.

Note: Quelques points à retenir lors de l'exécution de l'opération xor :



lancer la gestion des exceptions en Java
  • Le XOR ne doit être qu'entre des éléments homogènes, c'est-à-dire que leur type de données doit être le même.
  • Le booléen d'une chaîne entraînera Vrai si la chaîne n'est pas vide et FAUX si la chaîne est vide.

Voyons maintenant l'opération XOR sur différents types de données en Python.

XOR sur les entiers

Les nombres entiers sont d'abord convertis en nombres binaires, puis chaque bit est comparé les uns aux autres. La réponse finale est ensuite à nouveau reconvertie sous la forme entière originale. Le code suivant montre l'utilisation d'un caret pour effectuer le XOR de deux variables entières.

Exemple: Tout d'abord, deux variables ont été initialisées contenant 10 et 27 valeurs entières. Ensuite, le xor des deux variables est obtenu à l'aide de l'opérateur caret. Le résultat de l'opération s'affiche.



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

Sortir:

17>

Complexité temporelle : O(1)

Complexité spatiale : O(1)

XOR sur booléen

Le XOR de deux variables booléennes est assez simple. La sortie de l'opération XOR est 0 ou 1, ce qui représente respectivement True ou Flase au format booléen. Par conséquent, pour obtenir le XOR logique du type de données booléen, True ou False est fourni comme valeurs d'entrée.

Exemple: Tout d'abord, deux variables booléennes ont été initialisées avec une valeur, puis l'opération XOR est effectuée sur elles à l'aide de l'opérateur caret.

tranche java
Python
# First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>

Sortir:

True>

Complexité temporelle : O(1)

Complexité spatiale : O(1)

XOR sur chaîne

Étant donné que les chaînes sont une séquence, le type de données doit être normalisé pour que l'opération soit effectuée sur elles. Par conséquent, les chaînes seraient converties en bool, puis l'opération xor pourrait être effectuée sur elles. Mais de ce fait, le résultat de l’opération serait binaire, c’est-à-dire qu’elle donnerait soit Vrai ou FAUX (contrairement au xor des entiers où la valeur résultante est produite).

Exemple: Tout d'abord, deux chaînes sont définies. L'un d'eux est une chaîne vide. Ensuite, les chaînes sont converties en type de données booléen et l'opération xor est effectuée sur elles. Le résultat s'affiche.

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

Sortir:

True>

Complexité temporelle : O(n)

Complexité spatiale : O(n), où n est la longueur de la chaîne

fonctionnalités de Java 8

XOR de deux variables à l'aide du module opérateur

Python dispose d'un module opérateur qui fournit un ensemble de fonctions prédéfinies pour les opérateurs arithmétiques, logiques, au niveau du bit et de comparaison. Il fournit également la fonction XOR de l'opérateur bit à bit qui peut être utilisée pour obtenir le XOR de deux variables.

Exemple: Importez d’abord le module opérateur. Ensuite, deux variables sont initialisées avec une valeur, puis l'opération XOR est effectuée sur elles à l'aide de la fonction xor des modules opérateurs.

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

Sortir:

17>

Complexité temporelle : O(1)

Complexité spatiale : O(1)

Échanger deux entiers à l'aide de XOR sans variable temporaire

L'opération au niveau du bit XOR en Python peut également être utilisée pour échanger deux entiers sans utiliser la variable temporaire. Voyons comment cela fonctionne.

chaîne un entier
a = a ^ b b = a ^ b a = a ^ b>

L'échange nécessite trois expressions avec l'opération XOR.

  1. XOR les deux entiers 'un' et ' b' et stocker son résultat dans l'entier 'un' lui-même.
  2. Maintenant XOR la ​​valeur mise à jour de 'un' avec 'b'. Cela donnera la valeur originale de 'un' , qui est maintenant stocké dans 'b' .
  3. Enfin, XOR 'un' avec la valeur maintenant mise à jour de 'b' à l'étape précédente. Le résultat sera la valeur originale de 'b' . qui est maintenant stocké dans 'un' .

Exemple: Tout d'abord, deux entiers sont initialisés. Ensuite, en utilisant les trois étapes ci-dessus, l'échange de deux entiers est effectué à l'aide de l'opérateur caret XOR. Enfin, imprimez les entiers échangés.

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

Sortir:

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