Operadores lógicos y a nivel de bit
Otro ejemplo práctico de las operaciones lógicas, lo encontramos en los operadores lógicos y operadores a nivel de bit. Estos recursos están ampliamente presentes en los sistemas informáticos, tal como los de procesamiento de información o de programación de software.
Operadores a nivel de bit en programación de software
Los operadores a nivel de bit permiten la evaluación y la manipulación de bits específicos entre variables, aplicando las mismas operaciones booleanas.
AND ($x & $y) Aplica la operación AND entre las variables $x y $y
OR ($x | $y) Aplica la operación OR entre las variables $x y $y
XOR ($a ^ $b) Aplica la operación XOR entre las variables $x y $y
NOT (~ $x) Invierte el valor de la variable $x
Por ejemplo, aplicando el operador AND entre los números 140 y 89, nos da como resultado 8:

Compuerta AND
Realmente no deberíamos mezclar el simbolo de las compuertas electrónicas dentro del marco del software. Sin embargo, debido a que la lógica es la misma, las usamos a modo de analogía para darle continuidad a la comprensión de las operaciones lógicas.
Llevado este concepto a un lenguaje de progamación como PHP, tendríamos algo como esto:
<?php
$x = 140;
$y = 89;
$resul = $x & $y; //Esta línea de código ejecuta el operador a nivel de bit AND y su resultado se carga en la variable $resul
echo $resul; //Mostramos en pantalla el resultado
?>
Operadores a nivel de bit en redes informáticas
Dentro del campo de las redes informáticas, las direcciones IP versión 4 son procesadas en formato binario por los sistemas de enrutamiento de paquetes. Esto hace que dispositivos tipo routers Cisco o Linux deban ejecutar la operación a nivel de bit AND, para decidir las rutas que deben seguir las señales (paquetes). De ese modo, despejan el número de la red y enrutan las señales hacía su destino.
Veamos lo anterior con el siguiente ejemplo:

Operación AND en tablas de enrutamiento
Tenemos una laptop, dos routers con sus interfaces eth0, eth1 y eth2 y un servidor de correo. Además de sus correspondientes direcciones de redes.
Tomando como referencia la imagen anterior, suponga que el Cliente necesita revisar su correo corporativo. El software instalado en su laptop inicia el proceso de conexión hacía la dirección IP destino 23.230.192.68, que es el Servidor de Correo.
El Router 1 recibe la señal de la laptop que va dirigida a la dirección IP 23.230.192.68. Entonces, el router usando la operación AND decide que el puerto por el que debe reenviar la señal es la interfaz eth1. Este procedimiento lo ejecuta así:
Tenemos los siguientes datos de la IP destino:
Dirección IP: 23.230.192.68
Máscara: 255.248.0.0 (máscara de 13 bits)
La misma dirección IP y máscara, en formato binario:
Dirección IP: 00010111.11100 110.11000000.01000100
Máscara1: 11111111.11111 000.00000000.00000000
Es aquí donde el Router 1 toma cada una de las máscaras de sus interfaces de red y le aplica la operación AND, hasta que la dirección de red destino le coincida con alguna de sus interfaces. Así es como el router «mira a través de la máscara».

AND bit a bit. El router procesa la dirección IP destino 23.230.192.68 y la máscara de subred (declarada en la interfaz eth1) con el operador AND. Así, en cada 1 de la máscara se copia el bit de la dirección IP a la dirección de red.
Cuando el Router 1 aplica el operador AND, determina que la dirección de red a la que pertenece la dirección IP 23.230.192.68 (dirección ip del servidor de correo), es la 00010111.11100 000.00000000.00000000, ó 23.224.0.0, asociada al puerto eth1 en su tabla de enrutamiento. De ese modo direcciona la señal de la laptop por su intefaz de red eth1, y finalmente se establece la conexión entre el Cliente y el Servidor.
Más sobre direcciones IP en Wikipedia, aquí
Más sobre direccionamiento IP en Cisco, aquí
Operadores lógicos
Los operadores lógicos en la programación de software se emplean bastante para evaluar condiciones del tipo Verdadero (true) o Falso (false). Son imprescindibles al momento de evaluar si un valor cumple ciertas condiciones.

Tabla de verdad en los operadores lógicos
AND – Ejemplo -> $A AND $B = Evalúa que se cumplan las dos condiciones que une.
NOT – Ejemplo -> !$A True si $a no es True
OR – Ejemplo -> $A OR $B = Evalúa que se cumpla, al menos, una de las dos condiciones que une.
XOR – Ejemplo -> $A XOR $B = Evalúa que se cumpla una, y sólo una, de las dos condiciones que une.
Por ejemplo, el siguiente algoritmo emplea el operador lógico && (AND ó Y) para evaluar si la variable $edad se encuentra entre 0 y 18.
<?php
$edad = 14;
if ($edad >= 0 && $edad < 18 ){
echo "Aún está en la minoría de edad";
} else {
echo "Es mayor de edad";
}
?>
Si la variable $edad es mayor que 0 Y menor que 18, se informa en pantalla que si es menor de edad (true). Si la condición no se cumple (false), entonces (else) se muestra en pantalla que es mayor de edad.
Tal vez le interese ver Construcción de un Sensor de Temperatura con Arduino, aquí.
1* Máscara de red: La máscara de red es semejante a un agujero en una hoja de papel, colocada sobre un texto. Entre más grande el agujero, más texto se puede ver. Del mismo modo, con la máscara de red se puede despejar la red a la que pertenece una dirección IP.
Comparte esto en