Partage via


Xor, opérateur (Visual Basic)

Effectue une exclusion logique sur deux expressions Boolean ou une exclusion de bits sur deux expressions numériques.

Syntaxe

result = expression1 Xor expression2  

Éléments

result
Obligatoire. Toute variable Boolean ou numérique. Pour la comparaison booléenne, 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 qui représente l’exclusion au niveau du bit (disjonction au niveau du bit exclusive) de deux modèles de bits numériques.

expression1
Obligatoire. Toute expression Boolean ou numérique.

expression2
Obligatoire. Toute expression Boolean ou numérique.

Notes

Pour la comparaison booléenne, result est True si et seulement si exactement l’un de expression1 et expression2 est évalué à True. Autrement dit, si et seulement si expression1 et expression2 évaluent à des valeurs opposées Boolean. Le tableau suivant illustre la détermination de result.

Si expression1 est Et expression2 est La valeur de result est
True True False
True False True
False True True
False False False

Notes

Dans une comparaison booléenne, l’opérateur Xor évalue toujours les deux expressions, ce qui peut inclure la réalisation d’appels de procédure. Il n’existe aucun court-circuitage équivalent à Xor, car le résultat dépend toujours des deux opérandes. Pour les opérateurs logiques de court-circuit, consultez Opérateur AndAlso et Opérateur OrElse.

Pour les opérations au niveau du bit, l’opérateur Xor effectue une comparaison au niveau du bit de bits identiques dans deux expressions numériques et définit le bit correspondant dans result en fonction du tableau suivant.

Si le bit en expression1 est Et le bit en expression2 est Le bit en result est
1 1 0
1 0 1
0 1 1
0 0 0

Notes

Étant donné que les opérateurs logiques et au niveau du bit ont une priorité inférieure à d’autres opérateurs arithmétiques et relationnels, toutes les opérations au niveau du bit doivent être placées entre parenthèses pour garantir l’exécution précise.

Par exemple, 5 Xor 3 est 6. Pour voir pourquoi il en est ainsi, convertissez 5 et 3 en leurs représentations binaires, 101 et 011. Utilisez ensuite le tableau précédent pour déterminer que 101 Xor 011 est 110, qui est 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 valeur numérique (–1 pour True et 0 pour False) et effectue une opération au niveau du bit.

Pour une comparaison Boolean, le type de données du résultat est Boolean. Pour une comparaison au niveau du bit, le type de données de résultat est un type numérique approprié pour les types de données de expression1 et de expression2. Consultez le tableau « Comparaisons relationnelles et au niveau du bit » 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 structure. Si votre code utilise cet opérateur sur une telle classe ou structure, veillez à comprendre son comportement redéfini. Pour plus d'informations, consultez Operator Procedures.

Exemple 1

L’exemple suivant 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 l’une des expressions est exactement 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 les résultats de False, True et False, respectivement.

Exemple 2

L’exemple suivant utilise l’opérateur Xor pour effectuer une exclusion logique (disjonction logique exclusive) sur les bits individuels de deux expressions numériques. Le bit dans le modèle de résultat est défini si l’un des bits correspondants dans les opérandes est défini sur 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 des résultats de 2, 12 et 14, respectivement.

Voir aussi