Partager via


Xor, opérateur (Visual Basic)

Mise à jour : novembre 2007

Effectue une exclusion logique sur deux expressions Boolean ou une exclusion d'opérations de bits sur deux expressions numériques.

result = expression1 Xor expression2

Éléments

  • result
    Requis. Toute variable Boolean ou numérique. Pour la comparaison Boolean, result est l'exclusion logique (disjonction logique exclusive) de deux valeurs Boolean. Pour les opérations au niveau du bit, result est une valeur numérique représentant l'exclusion d'opérations de bits (disjonction d'opérations de bits exclusive) de deux modèles binaires numériques.

  • expression1
    Requis. Toute expression Boolean ou numérique.

  • expression2
    Requis. Toute expression Boolean ou numérique.

Notes

Pour la comparaison Boolean, result a la valeur True si et seulement si exactement expression1 ou expression2 a la valeur True. En d'autres termes, si et uniquement si expression1 et expression2 ont les valeurs opposées à la valeur Boolean. Le tableau suivant illustre la manière dont result est déterminé.

Si expression1 a la valeur

Et expression2 a la valeur

La valeur de result est

True

True

False

True

False

True

False

True

True

False

False

False

Remarque :

Dans la comparaison Boolean, l'opérateur Xor évalue toujours les deux expressions qui pourraient inclure des appels de procédure. Il n'existe pas d'équivalent court-circuitant de Xor, car le résultat dépend toujours des deux opérandes. Pour obtenir des informations sur les opérateurs logiques court-circuitant, consultez AndAlso, opérateur et OrElse, opérateur.

Pour les opérations au niveau du bit, l'opérateur Xor effectue une comparaison de bits de position identique dans deux expressions numériques et définit le bit correspondant dans result d'après le tableau suivant :

Si le bit dans expression1 est

Et si le bit dans expression2 est

Le bit dans result est

1

1

0

1

0

1

0

1

1

0

0

0

Remarque :

Compte tenu que les opérateurs logiques et de bits ont une priorité inférieure à celle des opérateurs arithmétiques et relationnels, toutes les opérations au niveau du bit doivent être mises entre parenthèses afin de garantir une exécution précise.

Par exemple, 5 Xor 3 équivaut à 6. Pour connaître la raison de cette équivalence, convertissez 5 et 3 en leurs représentations binaire, 101 et 011. Puis, utilisez la table précédente pour déterminer que 101 Xor 011 est égal à 110, représentation binaire du nombre décimal 6.

Types de données

Si les opérandes se composent d'une expression Boolean et d'une expression numérique, Visual Basic convertit l'expression Boolean en une valeur numérique (-1 pour True et 0 pour False) et exécute une opération au niveau du bit.

Pour une comparaison Boolean, le type de données du résultat est Boolean. Pour une comparaison de bits, le type de données du résultat est un type numérique approprié pour les types de données de expression1 et expression2. Consultez le tableau « Relational and Bitwise Comparisons » dans Types de données des résultats d'opérateur.

Surcharge

L'opérateur Xor peut être surchargé, ce qui signifie qu'une classe ou une structure peut redéfinir son comportement lorsqu'un opérande a le type de cette classe ou de cette structure. Si votre code utilise cet opérateur sur une telle classe ou structure, assurez-vous que vous comprenez son comportement redéfini. Pour plus d'informations, consultez Procédures d'opérateur.

Exemple

Cet exemple utilise l'opérateur Xor pour effectuer une exclusion logique (disjonction logique exclusive) sur deux expressions. Le résultat est une valeur Boolean qui indique si une seule des expressions a la valeur True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Xor b > c
secondCheck = b > a Xor b > c
thirdCheck = b > a Xor c > b

L'exemple précédent produit respectivement les résultats suivants : False, True et False.

Cet exemple utilise l'opérateur Xor pour effectuer une exclusion logique (disjonction logique exclusive) sur les bits de deux expressions numériques. Le bit du modèle de résultat est défini si un seul des bits correspondants dans les opérandes a la valeur 1.

Dim a As Integer = 10 ' 1010 in binary
Dim b As Integer = 8  ' 1000 in binary
Dim c As Integer = 6  ' 0110 in binary
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Xor b)  '  2, 0010 in binary
secondPattern = (a Xor c) ' 12, 1100 in binary
thirdPattern = (b Xor c)  ' 14, 1110 in binary

L'exemple précédent produit respectivement les résultats suivants : 2, 12 et 14.

Voir aussi

Concepts

Opérateurs de bits et opérateurs logiques en Visual Basic

Référence

Opérateurs logiques/de bits

Priorité des opérateurs en Visual Basic

Opérateurs répertoriés par fonctionnalité