Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Realiza una exclusión lógica en dos Boolean expresiones o una exclusión bit a bit en dos expresiones numéricas.
Sintaxis
result = expression1 Xor expression2
Partes
result
Obligatorio. Cualquier Boolean variable numérica o . Para la comparación booleana, result es la exclusión lógica (disjunción lógica exclusiva) de dos Boolean valores. Para las operaciones bit a bit, result es un valor numérico que representa la exclusión bit a bit (disjunción bit a bit exclusiva) de dos patrones de bits numéricos.
expression1
Obligatorio. Cualquier Boolean expresión numérica o .
expression2
Obligatorio. Cualquier Boolean expresión numérica o .
Observaciones
Para la comparación booleana, result es True si y solo si exactamente uno de expression1 y expression2 se evalúa como True. Es decir, si y solo si expression1 y expression2 se evalúan como valores opuestos Boolean . En la tabla siguiente se muestra cómo result se determina.
Si expression1 es |
Y expression2 es |
El valor de result es |
|---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Nota:
En una comparación booleana, el Xor operador siempre evalúa ambas expresiones, lo que podría incluir realizar llamadas a procedimiento. No hay ningún homólogo de cortocircuito en Xor, ya que el resultado siempre depende de ambos operandos. Para los operadores lógicos de cortocircuito , consulte Operador AndAlso y Operador OrElse.
Para las operaciones bit a bit, el Xor operador realiza una comparación bit a bit de bits de bits con posición idéntica en dos expresiones numéricas y establece el bit correspondiente en result según la tabla siguiente.
Si el bit en expression1 es |
Y bit en expression2 es |
El bit en result es |
|---|---|---|
| 1 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Nota:
Dado que los operadores lógicos y bit a bit tienen una prioridad menor que otros operadores aritméticos y relacionales, las operaciones bit a bit deben incluirse entre paréntesis para garantizar una ejecución precisa.
Por ejemplo, 5 Xor 3 es 6. Para ver por qué esto es así, convierta 5 y 3 en sus representaciones binarias, 101 y 011. A continuación, use la tabla anterior para determinar que 101 Xor 011 es 110, que es la representación binaria del número decimal 6.
Tipos de datos
Si los operandos constan de una Boolean expresión y una expresión numérica, Visual Basic convierte la Boolean expresión en un valor numérico (–1 para True y 0 para False) y realiza una operación bit a bit.
Para una Boolean comparación, el tipo de datos del resultado es Boolean. Para una comparación bit a bit, el tipo de datos de resultado es un tipo numérico adecuado para los tipos de datos de expression1 y expression2. Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de datos de los resultados del operador.
Sobrecarga
El Xor operador se puede sobrecargar, lo que significa que una clase o estructura puede redefinir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. Si el código usa este operador en una clase o estructura de este tipo, asegúrese de comprender su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador.
Ejemplo 1
En el ejemplo siguiente se usa el Xor operador para realizar la exclusión lógica (disjunción lógica exclusiva) en dos expresiones. El resultado es un Boolean valor que representa si exactamente una de las expresiones 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
En el ejemplo anterior se generan resultados de False, Truey False, respectivamente.
Ejemplo 2
En el ejemplo siguiente se usa el Xor operador para realizar la exclusión lógica (disjunción lógica exclusiva) en los bits individuales de dos expresiones numéricas. El bit del patrón de resultado se establece si exactamente uno de los bits correspondientes de los operandos se establece en 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
El ejemplo anterior genera resultados de 2, 12 y 14, respectivamente.