Partager via


Opérateur Xor (Visual Basic)

Effectue une exclusion logique sur deux Boolean expressions ou une exclusion au niveau du bit sur deux expressions numériques.

Syntaxe

result = expression1 Xor expression2  

Pièces

result
Obligatoire. Toute Boolean variable ou variable numérique. Pour la comparaison booléenne, result est l’exclusion logique (disjonction logique exclusive) de deux Boolean valeurs. 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 Boolean expression ou expression numérique.

expression2
Obligatoire. Toute Boolean expression ou expression numérique.

Remarques

Pour la comparaison booléenne, result est True si et seulement si exactement l’un d’entre expression1 eux est expression2 évalué à True. Autrement dit, si et seulement si et expression2 évaluez expression1 les valeurs opposéesBoolean. Le tableau suivant montre comment result déterminer.

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

Remarque

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

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

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

Remarque

É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 c’est le cas, convertissez 5 et 3 en représentations binaires, 101 et 011. Utilisez ensuite la table précédente 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 Boolean expression 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 Boolean comparaison, 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 et expression1expression2. Consultez la table « Comparaisons relationnelles et au niveau du bit » dans les types de données des résultats des opérateurs.

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, vérifiez que vous comprenez son comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.

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 Boolean valeur qui indique si exactement l’une des expressions est 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 de False, Trueet , respectivement False.

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 exactement 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 respectivement les résultats de 2, 12 et 14.

Voir aussi