Xor, opérateur (Visual Basic)
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
Composants
result
Obligatoire.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
Obligatoire.Toute expression Boolean ou numérique.expression2
Obligatoire.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 est : |
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 Opérateur AndAlso (Visual Basic) et Opérateur OrElse (Visual Basic).
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 a la valeur |
Et si le bit dans expression2 a la valeur |
Le bit dans result a la valeur |
---|---|---|
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 est 6.Pour mieux illustrer cette opération, convertissez 5 et 3 en leurs représentations binaire, 101 et 011.Utilisez ensuite la table précédente pour déterminer que 101 Xor 011 est 110, la 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 (Visual Basic).
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 (Visual Basic).
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
Référence
Opérateurs logiques/de bits (Visual Basic)
Priorité des opérateurs en Visual Basic
Opérateurs répertoriés par fonctionnalité (Visual Basic)