Buscador

Xor - II

A nivel de bit, Xor realiza las operaciones mostradas en la Tabla 13.
Tabla 13. Tabla de valores a nivel de bit del operador Or.
El Código fuente 87 muestra algunos ejemplos a nivel de bit con este operador.


Dim Resultado As Integer
Resultado = 15 Xor 8 ' devuelve: 7
Resultado = 6 Xor 45 ' devuelve: 43
Código fuente 87

Xor - I

A nivel lógico, este operador realiza una exclusión entre dos expresiones. La Tabla 12 muestra los diferentes resultados obtenidos con el uso de este operador en función de los valores que tengan sus expresiones.
El Código fuente 86 muestra algunos ejemplos a nivel lógico con este operador


Dim Resultado As Boolean
Resultado = (58 > 20) Xor ("H" = "H") ' devuelve: False
Resultado = ("H" = "H") Xor (720 < 150) ' devuelve: True
Resultado = (8 <> 8) Xor (62 < 115) ' devuelve: True
Resultado = ("W" > "b") Xor ("Q" = "R") ' devuelve: False
Código fuente 86

Or - II

A nivel de bit, Or realiza las operaciones mostradas en la Tabla 11.
Tabla 11. Tabla de valores a nivel de bit del operador Or.
El Código fuente 85 muestra algunos ejemplos a nivel de bit con este operador.


Dim Resultado As Integer
Resultado = 15 Or 8 ' devuelve: 15
Resultado = 6 Or 45 ' devuelve: 47
Código fuente 85

Or - I

A nivel lógico, este operador realiza una disyunción entre dos expresiones. La Tabla 10 muestra los diferentes resultados obtenidos con el uso de este operador en función de los valores que tengan sus expresiones.
El Código fuente 84 muestra algunos ejemplos a nivel lógico con este operador.


Dim Resultado As Boolean
Resultado = (58 > 20) Or ("H" = "H") ' devuelve: True
Resultado = ("H" = "H") Or (720 < 150) ' devuelve: True
Resultado = (8 <> 8) Or (62 < 115) ' devuelve: True
Resultado = ("W" > "b") Or ("Q" = "R") ' devuelve: False
Código fuente 84

Not - II

A nivel de bit, Not realiza las operaciones mostradas en la Tabla 9.
El Código fuente 83 muestra algunos ejemplos a nivel de bit con este operador.


Dim Resultado As Integer
Resultado = Not 16 ' devuelve: -17
Resultado = Not 4 ' devuelve: -5
Código fuente 83

Not - I

A nivel lógico, este operador realiza una negación entre dos expresiones. Su formato es ligeramente distinto del resto de operadores lógicos, como vemos en el Código fuente 81.


Resultado = Not Expresión
Código fuente 81
La Tabla 8 muestra los resultados obtenidos con el uso de este operador en función de su expresión.
Tabla 8. Tabla de valores lógicos del operador Not.
El Código fuente 82 muestra algunos ejemplos a nivel lógico con este operador.

Dim Operacion As Boolean
Dim Resultado As Boolean
Operacion = 100 > 60
Resultado = Not Operacion ' devuelve: False
Resultado = Not (28 > 50) ' devuelve: True
Código fuente 82

Uso de paréntesis para mejorar la legibilidad de expresiones

Los ejemplos a nivel lógico del apartado anterior, si bien se ejecutan correctamente, pueden ser un tanto confusos a la hora de leer, ya que al tratarse de una operación lógica, cada operando es a su vez una expresión. Para facilitar la lectura y compresión en expresiones sobre todo lógicas, podemos encerrar cada operando-expresión entre paréntesis. Ver Código fuente 80.

Dim Resultado As Boolean
Resultado = (58 > 20) And ("H" = "H") ' devuelve: True
Resultado = ("H" = "H") And (720 < 150) ' devuelve: False
Resultado = (8 <> 8) And (62 < 115) ' devuelve: False
Resultado = ("W" > "b") And ("Q" = "R") ' devuelve: False
Código fuente 80

Como puede comprobar el lector al ejecutar, el resultado es el mismo que si no utilizamos paréntesis, pero la claridad al leer estas líneas de código es mucho mayor.

And - II

A nivel de bit, And realiza las operaciones mostradas en la Tabla 7.
Tabla 7. Tabla de valores a nivel de bit del operador And.
El Código fuente 79 muestra algunos ejemplos a nivel de bit con este operador.


Dim Resultado As Integer
Resultado = 15 And 8 ' devuelve: 8
Resultado = 6 And 45 ' devuelve: 4
Código fuente 79

And - I

A nivel lógico, este operador realiza una conjunción entre dos expresiones. La Tabla 6 muestra los diferentes resultados obtenidos con el uso de este operador en función de los valores que tengan sus expresiones.
Tabla 6. Tabla de valores lógicos del operador And.

El Código fuente 78 muestra algunos ejemplos a nivel lógico con este operador.

Dim Resultado As Boolean
Resultado = 58 > 20 And "H" = "H" ' devuelve: True
Resultado = "H" = "H" And 720 < 150 ' devuelve: False
Resultado = 8 <> 8 And 62 < 115 ' devuelve: False
Resultado = "W" > "b" And "Q" = "R" ' devuelve: False
Código fuente 78

Operadores lógicos y a nivel de bit

Los operadores lógicos devuelven un valor de tipo Boolean (True o False), en base a una condición establecida entre los operandos de la expresión. En expresiones que impliquen el uso de operadores lógicos, es habitual que los operandos sean a su vez expresiones, como veremos en los próximos ejemplos con este tipo de operadores. El Código fuente 77 muestra el formato de uso para estos operadores.

Resultado = ExpresiónA OperadorLogico ExpresiónB
Código fuente 77

Cuando los operandos que forman parte de la expresión son numéricos, la evaluación de la expresión
se realiza a nivel de bit, es decir, comparando los bits de las posiciones equivalentes de ambos
números y obteniendo igualmente, un valor numérico como resultado.

Comparación de objetos. El operador Is - II

Como hemos podido comprobar, al comparar las variables del anterior fuente con Is, el resultado es False, ya que ambos objetos son instancias diferentes, aunque pertenezcan a la misma clase: Form. La creación de formularios será abordada en un tema posterior. Si por el contrario, creamos una única instancia de un objeto y la asignamos a las dos variables, el resultado será muy diferente. En este caso el operador Is devolverá True ya que ambas variables contienen el mismo objeto. Ver Código fuente 76.

Public Sub Main()
' declarar dos variables que
' contendran objetos de la clase Form
Dim VentanaUno As Form
Dim VentanaDos As Form
Dim Resultado As Boolean
' crear una única instancia de la clase Form,
' el objeto resultante se asigna a una variable
VentanaUno = New Form()
' después el mismo objeto que ya está
' en una variable se asigna a la otra variable
VentanaDos = VentanaUno
' ambas variables contienen una referencia
' al mismo objeto, por lo que la expresión
' de comparación Is devuelve True
Resultado = VentanaUno Is VentanaDos
End Sub
Código fuente 76

Comparación de objetos. El operador Is - I

El operador Is permite comparar si dos variables que contienen objetos apuntan o no a la misma referencia o instancia del objeto. Para conceptos básicos sobre objetos, consulte el lector los temas dedicados a la programación orientada a objetos en este mismo texto. El Código fuente 74 muestra el formato de uso para este operador.

Resultado = ObjetoA Is ObjetoB
Código fuente 74

Para probar este operador podemos crear una aplicación de tipo Windows y añadir un módulo en el que escribiríamos un procedimiento Main( ). Después de configurar el proyecto para que se inicie por este procedimiento, escribiremos las líneas que se muestran en el Código fuente 75.


Public Sub Main()
' declarar dos variables que
' contendran objetos de la clase Form
Dim VentanaUno As Form
Dim VentanaDos As Form
Dim Resultado As Boolean
' crear dos instancias de la clase Form
' asignando cada uno de los objetos
' a las variables
VentanaUno = New Form()
VentanaDos = New Form()
' la expresión de comparación con Is devuelve
' False ya que las variables tienen referencias
' a objetos diferentes, aunque sean de la misma clase
Resultado = VentanaUno Is VentanaDos
End Sub
Código fuente 75

Comparación de cadenas en base a un patrón. El operador Like - I

El operador Like permite realizar una comparación entre dos cadenas, en base a un patrón establecido en una de ellas. El formato de uso se muestra en el Código fuente 72.

Resultado = Cadena Like Patrón
Código fuente 72
• Resultado. Valor lógico con el resultado de la comparación. Verdadero indica que hay una coincidencia de Cadena con Patrón. Falso indica que no se ha producido coincidencia de Cadena con Patrón. 
• Cadena. Cadena de caracteres que se compara con el patrón de coincidencia. 
• Patrón. Cadena de caracteres en donde se especifican los caracteres especiales que sirven de patrón de coincidencia respecto al valor de Cadena. La Tabla 5 muestra los caracteres y convenciones de uso establecidas por el lenguaje para el uso de patrones de comparación.
Tabla 5. Caracteres patrón del operador Like.