Lógica
binaria
Operaciones
lógicas con
variables binarias
Lógica
binaria
Una
de las funciones de la Unidad Aritmético Lógica
(ALU), situada en el núcleo
del procesador es la de realizar las operaciones lógicas con
los datos contenidos en una instrucción del programa. Pero,
¿qué es una operación lógica?
Operaciones lógicas
Una
operación lógica asigna un valor (CIERTO o FALSO) a
la combinación de condiciones (CIERTO o FALSO) de uno o
más
factores. Los factores que intervienen en una operación
lógica
sólo pueden ser ciertos o falsos. Y el resultado de una
operación lógica puede ser, tan sólo, cierto o
falso.
Por ejemplo, imagínate el sistema de
control del toldo de una cafetería, que se gobierna mediante
una operación lógica. Para que el motor que extiende el
toldo se accione deberá tener en cuenta dos factores: ¿es
de día? ¿está
lloviendo? Si estos dos factores son
ciertos, el motor debe ponerse en marcha y extender el toldo.
De
dia
|
Llueve
|
Toldo
|
Falso
|
Falso
|
Falso
|
Falso
|
Cierto
|
Falso
|
Cierto
|
Falso
|
Falso
|
Cierto
|
Cierto
|
Cierto
|
Los
resultados de una operación lógica, para cada uno
de los valores posibles de las variables, se fijan en una tabla
denominada Tabla de Verdad, como
la del ejemplo anterior.
Para
que un procesador pueda ejecutar las operaciones lógicas,
es preciso asignar un valor binario a cada una de las condiciones
posibles. Se suele asignar un UNO
(1) al valor CIERTO y un CERO
(0) al valor FALSO, con el
criterio denominado lógica positiva.
Las
operaciones lógicas más importantes son: EQUAL
(idéntico), NOT
(negación), OR (O), AND
(Y), NOR (O negada), NAND
(Y negada), OREX (O exclusiva) y NOREX (O exclusiva negada).
Veamos con detalle estas operaciones:
Función
EQUAL
El
resultado S de aplicar la
función lógica equal,
sobre una variable a, es
muy simple: si
a
es CIERTO (1) S es CIERTO
(1) y, si a
es FALSO (0), S
es FALSO (0). Estas dos
resultados posibles se muestran en la tabla de verdad adjunta:
Un ejemplo sencillo de aplicación
práctica de esta función lógica sería el
encendido de las luces del alumbrado público.
En algún lugar de la ciudad se
instala
un detector crepuscular, que detecta cuándo es de noche y
controla un interruptor que enciende las luces de las calles: si es
de noche (1) se encienden las lámparas (1); si NO es de noche
(0) NO se encienden las lámparas (0).
Un circuito eléctrico capaz de
implementar esta función lógica es el siguiente:
Función NOT
El
resultado S de aplicar la
función lógica NOT,
sobre una variable a, es
muy simple: si
a
es CIERTO (1) S es FALSO
(0) y, si a
es FALSO (0), S
es CIERTO (1). Estas dos
resultados posibles se muestran en la tabla de verdad adjunta. Se
conoce también como función negación: S
equivale a a
negada.
Un ejemplo sencillo de aplicación
práctica de esta función lógica sería el
circuito que controla el acceso a una oficina bancaria, a través
de una puerta automática equipada con un detector de metales
que cierra un interruptor.
Si el detector de metales SI nota
que
el cliente lleva objetos metálicos (1) y la puerta NO
se abre (0); en cambio, si el cliente NO lleva objetos
metálicos (0), la puerta SI se abre (1).
Función
OR
La
función
OR equivale a la conjunción disyuntiva O. El
resultado S de aplicar la
función lógica OR, sobre dos variables a
y b es el siguiente: S
es cierto si a es CIERTO
(1) o si b
es CIERTO (1).
Cuando se aplica una operación lógica sobre 2 variables
caben 4 combinaciones posibles. Los resultados de la operación
lógica OR, en las cuatro combinaciones posibles de valores dos
variables, se muestran en la tabla de verdad adjunta.
a
|
b
|
S
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
Una aplicación práctica
sencilla
de la operación lógica OR,
sería el circuito de señalización instalado en
un comercio, en el que se puede entrar por dos puertas distintas, que
avisaría al dependiente al entrar un cliente por cualquiera de
las dos puertas del establecimiento. Si un cliente entra por la
puerta a (1) O
si un cliente entra por la puerta b
(1), el timbre suena (1). Si no entra ningún cliente por
ninguna de las puertas a (0) ni b (0). El timbre NO suena (0).
Un
circuito eléctrico compuesto por dos interruptores en
paralelo, cumple la lógica OR. La lámpara SI
se encenderá (1) si se acciona el interruptor a
(1) O si se acciona el interruptor b (1) O
si se accionan ambos interruptores. Si no se acciona ningún
interruptor, la lámpara NO se encenderá (0).
Función
AND
La
función
AND equivale a la conjunción copulativa Y: El
resultado S de aplicar la función lógica
AND, sobre dos variables a y b es el
siguiente: S
es CIERTO si a
es CIERTO (1) Y si b es CIERTO (1).
Los
resultados de
la operación lógica AND, en las cuatro combinaciones
posibles de valores dos variables, se muestran en la tabla de verdad
adjunta.
a
|
b
|
S
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
Una
aplicación de la operación lógica AND,
sería
el sistema de control de los pasajeros en un aeropuerto. Cada
pasajero debe pasar por tres controles: ¿Tiene tarjeta de
embarque? ¿Tiene pasaporte en regla? ¿No lleva objetos
metálicos peligrosos? Una empleada del aeropuerto comprueba
que tiene un billete válido y le da una tarjeta de embarque; a
continuación, un agente de policía verifica que su
pasaporte está en regla y no está en la lista de
personas reclamadas y, finalmente, un grupo de agentes comprueban su
equipaje de mano con un escáner y un arco detector de metales.
Un pasajero sólo puede embarcar en el avión si tiene
tarjeta de embarque (1), su pasaporte está en regla (1) y no
lleva consigo objetos peligrosos (1). En los demás casos no
puede embarcar.
Es
fácil construir un circuito eléctrico que cumple la
lógica AND: dos interruptores en serie, a
y b, por ejemplo. La lámpara S se
encenderá tan sólo si se actúa sobre el
interruptor a (1) Y sobre el interruptor b
(1). En todos los demás casos, la lámpara NO se
encenderá.
Función
NOR
La
función NOR equivale a la
función OR negada.
El
resultado S de aplicar la
función lógica NOR,
sobre dos variables a y b
es el siguiente: S
es CIERTO si a
es FALSO (0) y
si b es FALSO
(0). Los resultados de la operación lógica NOR,
en las cuatro combinaciones posibles de valores dos variables, se
muestran en la tabla de verdad adjunta:
a
|
b
|
S
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
Una
aplicación práctica sencilla de la operación
lógica NOR, sería el sistema de seguridad de un
puente levadizo. Un detector a se activa cuando entra
un vehículo en el puente, por el carril derecho. Otro detector b
se activa cuando entra otro vehículo por
el
carril contrario. Los motores que accionan el sistema de
elevación
del puente sólo deben ponerse en marcha si se da la
condición NOR: no hay ningún vehículo
circulando por
el
carril derecho NI por el carril izquierdo.
Un
circuito eléctrico compuesto por dos interruptores normalmente
cerrados, en serie, cumple la lógica NOR: la
lámpara SI se encenderá (1) si NO se
acciona el
interruptor a (0) NI se acciona el interruptor b
(0). Si se acciona cualquiera de los dos interruptores, la
lámpara NO se encenderá (0).
Función
NAND
La
función NAND equivale a
la función AND negada.
El resultado S
de aplicar la función lógica NAND,
sobre dos variables a y b
es el siguiente: S
es CIERTO si a
es FALSO (0) o
si b es FALSO
(0) o si son FALSAS
ambas variables. Los resultados de la operación
lógica NAND, en las cuatro
combinaciones
posibles de valores dos variables, se muestran en la tabla de verdad
adjunta:
a
|
b
|
S
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
Una aplicación práctica
sencilla
de la operación lógica NAND sería, por
ejemplo, el control del aire acondicionado de un edificio
inteligente. Supongamos que el edificio está equipado con un
detector crepuscular, que se activa al llegar la noche. Durante el
día el detector está desactivado (0) y durante la noche
el detector está activado (1).
Supongamos también que en la entrada
del
edificio hay un sistema de recuento de personas que se pone a CERO
(0) cuando hay alguien en el edificio y se pone a UNO (1)
cuando todo el mundo ha salido ya. ¿Cómo controlar la
puesta en marcha del aire acondicionado? Muy fácil, con un
circuito que siga la lógica NAND: el aire acondicionado
se parará cuando sea de noche y no quede nadie en el edificio.
Un
circuito eléctrico compuesto por dos interruptores normalmente
cerrados, en paralelo, cumple la lógica NAND: la
lámpara SI se encenderá (1) si NO se
acciona el interruptor a (0) o si NO se
acciona el interruptor b (0) o si NO se
accionan ambos interruptores.
Función
OREX
La
función OREX se conoce
también con el nombre de OR
EXCLUSIVA.
El
resultado S de aplicar la
función lógica OREX,
sobre dos variables a y b
es el siguiente: S
es CIERTO solo si a
es CIERTO (1) o
si b es CIERTO
(1), pero no si ambas variables son ciertas.
Los resultados de la operación lógica OREX,
en las cuatro combinaciones posibles de valores dos variables, se
muestran en la tabla de verdad adjunta:
a
|
b
|
S
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
Un circuito eléctrico como el del
esquema siguiente, compuesto por dos pulsadores dobles NA + NC,
cumple la lógica OREX: la
lámpara S
se encenderá (1) EXCLUSIVAMENTE si se acciona el
pulsador a o si se acciona el pulsador b,
pero NO se encenderá si se accionan
simultáneamente
ambos pulsadores. Tampoco se encenderá si no se acciona
ninguno de los dos pulsadores.
Función
NOREX
La
función NOREX se conoce
también con el nombre de OR
EXCLUSIVA NEGADA.
El
resultado S de aplicar la
función lógica NOREX,
sobre dos variables a y b
es el siguiente: S
es CIERTO si a
y b son ciertos O
si a
y b son falsos.
Es decir, si ambas variables tienen el mismo valor. Los
resultados de la operación lógica NOREX,
en las cuatro combinaciones posibles de valores dos variables, se
muestran en la tabla de verdad adjunta:
a
|
b
|
S
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
Un circuito eléctrico como el del
esquema siguiente, compuesto por dos pulsadores dobles NA + NC,
cumple la lógica NOREX: la
lámpara S
se encenderá si se accionan ambos pulsadores o
si no se acciona ninguno de ellos.
Otro ejemplo de aplicación de la
función
lógica NOREX es la corrección automática
de textos: si una persona escribe una palabra en su procesador de
textos, el corrector ortográfico la comparará con todas
las palabras semejantes de su diccionario aplicando una función
NOREX entre ellas.
Si alguna letra no coincide,
detectará
que hay un error, porque el resultado de la función NOREX no
entrega unos en todos los bit. Por ejemplo, si escribimos con una
falta de ortografía la palabra lobo:
|
Palabra
|
Código ASCII
|
Código binario
|
|
lovo
|
6C6F766F
|
01101100011011110111011001101111
|
|
lobo
|
6C6F626F
|
01101100011011110110001001101111
|
|
Función NOREX:
|
11111111111111111110101111111111
|
de este modo, el procesador es capaz de
detectar que el error está en el tercer carácter.
|