Compartilhar via


Operador Xor (Visual Basic)

Executa uma exclusão lógica em duas expressões Boolean, ou uma exclusão bit a bit em duas expressões numéricas.

result = expression1 Xor expression2

Partes

  • result
    Obrigatório.Qualquer Boolean ou variável numérica.Para comparação entre Boolean, result é a exclusão lógica (disjunção lógica exclusiva) de dois valores Boolean.Para operações bit a bit, result é um valor numérico que representa a exclusão bit a bit (disjunção bit a bit exclusiva) dos dois padrões numéricos de bits.

  • expression1
    Obrigatório.Qualquer Boolean ou expressão numérica.

  • expression2
    Obrigatório.Qualquer Boolean ou expressão numérica.

Comentários

Para Comparação Boolean, result é True se e somente se exatamente uma dentre expression1 e expression2 é avaliada como True.Isto é, se e somente se expression1 e expression2 forem avaliadas como valores Boolean opostos.A tabela a seguir ilustra como result é determinado.

Se expression1 está

E expression2 é

O valor do result é

True

True

False

True

False

True

False

True

True

False

False

False

Observação:

Em uma comparação booleana, o Xor operador sempre avalia duas expressões, que poderiam incluir fazer chamadas de procedimento. Não há contraparte de curto-circuito para Xor, porque o resultado sempre depende dos dois operandos.Para curto-circuito de os operadores lógicos, consulte Operador AndAlso e Operador OrElse.

Para operações bit a bit, o operador Xor executa uma comparação bit a bit de bits posicionados identicamente em duas expressões numéricas e configura o bit correspondente no result de acordo com a seguinte tabela.

Se o bit em expression1 é

E o bit na expression2 é

O bit em result será

1

1

0

1

0

1

0

1

1

0

0

0

Observação:

Considerando que os operadores lógicos e bit a bit têm menor precedência do que outros operadores aritméticos e relacionais, quaisquer operações bit a bit devem ser cercada por parênteses para seja assegurada a acurácia da execução.

Por exemplo, 5 Xor 3 é 6. Por que isso é converter assim, 5 e 3 para seus binário representações, 101 e 011.Em seguida, use a tabela anterior para determinar que XOR 101 011 é 110, qual é a representação binária do número decimal 6.

Tipos de dados

Se o operando consiste de uma expressão Boolean e uma expressão numérica, o Visual Basic converte a expressão Boolean para um valor numérico (-1 para True e 0 para False) e executa uma operação bit a bit.

Para uma comparação Boolean, o tipo de dados do resultado é Boolean.Para obter uma comparação bit a bit, o tipo de dados do resultado é um tipo numérico apropriado para os tipos de dados de expression1 e expression2. Veja a tabela " Comparações Relacionais e Bit a Bit" em Tipos de Dado de Resultados de Operador.

Sobrecarga

O operador Xor pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo daquela classe ou estrutura.Se seu código usa esse operador em tal classe ou estrutura, esteja certo que entende seu comportamento redefinido.Para obter mais informações, consulte Procedimentos de Operador.

Exemplo

O exemplo a seguir usa o operador Xor para executar exclusão lógica (disjunção lógica exclusiva) em duas expressões.O resultado é um valor Boolean que representa se exatamente uma das duas expressões é 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

O exemplo a seguir produz resultados False, True e False respectivamente.

O exemplo a seguir usa o operador Xor para executar exclusão lógica (disjunção lógica exclusiva) nos bits individuais de duas expressões numéricas.O bit no padrão resultante é setado se exatamente um dos bits correspondentes nos dois operandos é 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

O exemplo anterior produz resultados 2, 12 e 14, respectivamente.

Consulte também

Conceitos

Operadores lógicas e bit a bit no Visual Basic

Referência

Operadores Lógicos/Bit a bit

Precedência de operadores no Visual Basic

Operadores listados por Funcionalidade