Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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, Xor
car 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 expression1
expression2
. 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
, True
et , 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.