DiGrande.it
Braille y Tecnologías para la Discapacidad Visual

Los operadores lógicos

Un operador lógico es una palabra que conecta dos expresiones numéricas o booleanas y genera un valor. Dependiendo del tipo de operandos conectados, los definimos operadores condicionales cuando realizamos operaciones sobre tipos booleanos, mientras que los llamamos operadores lógicos cuando operamos sobre números enteros. Hay tres operadores binarios disponibles y un operador unario.

- AND - Conjunción condicional o lógica (operador binario);

- OR - Disyunción condicional o lógica (operador binario);

- XOR - Disyunción exclusiva condicional o lógica (operador binario);

- NOT - Negación condicional o lógica (operador unario).

Los operadores condicionales o lógicos binarios necesitan comparar dos operandos, mientras que el operador unario opera sobre un solo operando. Los operadores condicionales operan sobre operandos de tipo booleano. En cambio, los operadores lógicos operan solo sobre números enteros, por lo que, en caso de números de coma flotante, los números sometidos a un operador lógico se convierten automáticamente en números enteros sin signo. Los números enteros utilizan siempre 64 bits. Para comprender los operadores lógicos es necesario profundizar en el álgebra booleana y el sistema numérico binario.

El operador AND ejecuta una conjunción lógica, devolviendo como resultado TRUE si ambos operandos valen TRUE, de lo contrario FALSE. Dado que es un operador binario, y los bits individuales de cada operando tienen dos valores, las combinaciones posibles son cuatro.

- TRUE AND TRUE = TRUE

- FALSE AND FALSE = FALSE

- FALSE AND TRUE = FALSE

- TRUE AND FALSE = FALSE

Por ejemplo:

- C = 40 AND 8

A la variable C se le asigna el valor resultante 8, ya que el 3er bit en el número 40 está a TRUE. Ver el sistema numérico binario.

El operador OR ejecuta una disyunción lógica, devolviendo como resultado TRUE si uno de los operandos vale TRUE, de lo contrario FALSE si ambos operandos son FALSE. Dado que es un operador binario, y los bits individuales de cada operando tienen dos valores, las combinaciones posibles son cuatro.

- TRUE OR TRUE = TRUE

- FALSE OR FALSE = FALSE

- FALSE OR TRUE = TRUE

- TRUE OR FALSE = TRUE

Por ejemplo:

- C = 32 OR 8

A la variable C se le asigna el valor resultante 40, ya que la suma de los bits de los dos operandos devuelve el valor 40. Ver el sistema numérico binario.

- C = 40 OR 9

A la variable C se le asigna el valor 41. Esto demuestra que la disyunción lógica OR no es superponible a una suma aritmética.

El operador XOR ejecuta una disyunción exclusiva, devolviendo como resultado TRUE solo si los operandos son diferentes entre sí. Dado que es un operador binario, y los bits individuales de cada operando tienen dos valores, las combinaciones posibles son cuatro.

- TRUE XOR TRUE = FALSE

- FALSE XOR FALSE = FALSE

- FALSE XOR TRUE = TRUE

- TRUE XOR FALSE = TRUE

Por ejemplo

- C = 40 XOR 8

A la variable C se le asigna el valor resultante 32, ya que la disyunción exclusiva de los bits de los dos operandos devuelve el valor 32. Ver el sistema numérico binario.

- C = 40 XOR 63

A la variable C se le asigna el valor 23, resultado de la disyunción exclusiva de los bits de 40 y 63.

El operador NOT se utiliza para ejecutar la negación lógica, devolviendo como resultado el valor opuesto al de entrada. Este es un operador unario, lo que significa que solo necesita un operando para ser aplicado. Si una expresión devuelve TRUE, entonces "NOT expresión" devuelve el valor FALSE, y viceversa. Al aplicar este operador a variables numéricas, los números con signo se convertirán automáticamente en números sin signo.