Volver a Prácticas

Sistemas Numéricos y Compuertas

SISTEMAS NUMERICOS

CLASIFICACION DE LOS NUMEROS

La base de un sistema numérico se refiere al numero de símbolos básicos usados, los mas usuales son:

- Binario (2)
- Octal (8)
- Decimal (10)
- Hexadecimal (16)

REPRESENTACIÓN DECIMAL

El sistema de numeración que utilizamos se denomina decimal ya que emplea diez dígitos para indicar una cantidad, y es además un sistema posicional ya que cada dígito debe su valor a la posición que ocupa en la cantidad a la que pertenece.
Valor posicional 103 102 101 100
4 en 100 4 4 x 100 4
3 en 101 3 3 x 101 30
5 en 102 5 5 x 102 500
1 en 103 1 1 x 103 1000

Es un sistema posicional, el valor del número depende de su posición. En realidad posee dos valores, uno absoluto marcado por el valor del número, y otro relativo marcado por su posición.
Hemos utilizado el sistema decimal (de base 10) por tanto tiempo que prácticamente lo tomamos como algo natural. Cuando vemos un número, por ejemplo el 123, no pensamos en el valor en sí, en lugar de esto hacemos una representación mental de cuántos elementos representa éste valor. En realidad, el número 123 representa:

1*102 + 2*101 + 3*100
ó lo que es lo mismo:
100 + 20 + 3
Cada dígito a la izquierda del punto decimal representa un valor entre cero y nueve veces una potencia incrementada de diez. Los dígitos a la derecha del punto decimal por su parte representan un valor entre cero y nueve veces una potencia decrementada de diez. Por ejemplo, el número 123.456 representa:
1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3

REPRESENTACIÓN BINARIA

El sistema binario, como el decimal, es un sistema posicional; pero el valor de la posición viene dado por potencias de 2 ( 20, 21, 22,…) ya que solo se utilizan dos dígitos, el cero y el uno. Por tanto, si queremos convertir un número en base 2 (binario) al sistema decimal (base 10), no tenemos mas que multiplicar el dígito (0 ó 1) por la potencia de 2 correspondiente a su posición, véase tabla adjunta.
Valor posicional 23 22 21 20 Valor decimal
1 en 20 1 1 x 20 1
1 en 21 1 1 x 21 2
0 en 22 0 0 x 22 0
1 en 23 1 1 x 23 8

Como 1 + 2 + 0 + 8 = 11 tenemos que 1011(2 = 11(10 .
Si lo que queremos es convertir un número binario a decimal, dividiremos sucesivamente el valor decimal por 2 hasta llegar a 1. Los restos de las divisiones nos indicarán el valor binario, véase tabla adjunta
División Cociente Resto
52 / 2 26 0
26 / 2 13 0
13 / 2 6 1
6 / 2 3 0
3 / 2 1 1
1 1
Por tanto 52(10) = 110100(2)
Los sistemas de cómputo modernos trabajan utilizando la lógica binaria. Las computadoras representan valores utilizando dos niveles de voltaje (generalmente 0V. y 5V.), con éstos niveles podemos representar exactamente dos valores diferentes, por conveniencia utilizamos los valores cero y uno. Éstos dos valores por coincidencia corresponden a los dígitos utilizados por el sistema binario.

El sistema binario trabaja de forma similar al sistema decimal con dos diferencias, en el sistema binario sólo está permitido el uso de los dígitos 0 y 1 (en lugar de 0~9)
Como ya he comentado, los ordenadores "utilizan" este sistema de numeración, en cada posición de memoria solo pueden almacenar 1 bit ( o un cero o un uno).
Para convertir una fracción decimal a binario, el sistema que se sigue es similar al que utilizamos para los enteros, sin embargo, se usa la multiplicación en lugar de la división, y los enteros se acumulan en lugar de los residuos.

Ejemplo :
convertir (0.6875)10 a base 2
Entero Fracción Coeficiente
0.6875 *2 1 0.3750 a-1 = 1
0.3750 *2 0 0.75a-2 = 0
0.75 *2 1 0.5a-3 = 1
0.5 *2 1 0.0a-4 = 1
(0.6875)10=(0.1011)2

Cuando deseamos hacer la conversión de un número decimal de una parte entera y una parte fraccionaria la conversión se hace por separado y posteriormente se combinan las dos respuestas.
En un sentido estricto, cada número binario contiene una cantidad infinita de dígitos, también llamados bits que es una abreviatura de binary digits, por ejemplo, podemos representar el número siete de las siguientes formas:
· 111
· 00000111
· 000000000000111
Por conveniencia ignoraremos cualquier cantidad de ceros a la izquierda, sin embargo, como las instrucciones compatibles con los procesadores Intel 80x86 trabajan con grupos de ocho bits a veces es más fácil extender la cantidad de ceros a la izquierda en un múltiplo de cuatro ú ocho bits, por ejemplo, el número siete podemos representarlo así: 01112 ó 000001112. También es conveniente separar en grupos de cuatro dígitos los número binarios grandes, por ejemplo, el valor binario 1010111110110010 puede ser escrito así 1010 1111 1011 0010. Además, en una cadena binaria asignaremos al dígito de la extrema derecha como el bit de posición cero y cada bit subsecuente se le asignará el siguiente número sucesivo, de ésta manera un valor binario de ocho bits utiliza los bits cero al siete:
X7 X6 X5 X4 X3 X2 X1 X0
Al bit cero se le conoce como el bit de bajo orden en tanto que al bit de la extrema izquierda diferente de cero se le llama bit de alto orden.


REPRESENTACIÓN OCTAL Y DECIMAL

El sistema hexadecimal, como los anteriores, también es posicional. En este caso el valor de la posición viene dado por potencias de 16 (160, 161, 162,…).
Como sólo poseemos 10 caracteres para representar los posibles dígitos, se añaden las letras A, B, C, D, E y F.
Por tanto en base 16 disponemos de los siguientes caracteres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A = 10, B = 11, C = 12, D = 13, E = 14, y F = 15.
Para realizar la conversión al sistema decimal seguiremos un método similar al anterior, véase tabla.
Valor posicional 163 162 161 160 Valor decimal
F en 160 F F x 160 15
2 en 161 2 2 x 161 32
5 en 162 5 5 x 162 1280
A en 163 A A x 163 40960

Por tanto, como 15 + 32 + 1280 + 40960 = 42287 tenemos que A52F(16 = 42287(10 , también se suele representar como A52Fh, indicando la h que se trata de un valor hexadecimal.
Si lo que queremos es convertir una cantidad hexadecimal a decimal, seguiremos un método similar al utilizado con los valores binarios, teniendo en cuenta que si obtenemos como restos 10, 11, 12, 13, 14 ó 15 debemos sustituirlos por A, B, C, D, E o F.
División Cociente Resto
332 / 16 20 12 = C
20 / 16 1 4
1 1
Por tanto 332(10 = 14C(16 ó 14Ch.
Las conversiones entre código binario, octal y hexadecimal es muy importante en las comparaciones digitales, ya que cada dígito octal corresponde a tres dígitos binarios y a cada dígito hexadecimal corresponde cuatro dígitos binarios.
(10110001101011.111100000110)2 -> (26153.7406)8
Cuando deseamos convertir un número binario a hexadecimal, el proceso es similar excepto que el número binario se divide en grupos de 4.
(10110001101011.11110010)2 -> (2C6B.F2)16
La conversión a hexadecimal en binario se realiza con un procedimiento inverso al anterior esto es ; cada dígito octal se convierte en su equivalente binario de tres dígitos y cada dígito hexadecimal se convierte en su equivalente binario de cuatro dígitos.
Ejemplo :
(613.124)8 -> (110001011.001010100)2
(306.D)16 ->(001100000110.1101)2
Los números binarios son difíciles de manejar ya que se requiere dos o cuatro veces mas dígitos que su equivalente decimal.
Ejemplo :
(111111111111)2 -> (4095)10
Una forma de reducir esta deficiencia es emplear la relación entre el sistema de números binarios con el sistema octal o hexadecimal.

El número binario (111111111111)2 tiene 12 dígitos y los podemos expresar en octal (7777)8 (cuatro dígitos) o en hexadecimal como (FFF)16 (tres dígitos), la representación octal o hexadecimal es mas deseable ya que se representa en forma mas compacta, como un tercio o un cuarto del número de dígitos requeridos por el número binario equivalente.
El sistema hexadecimal se suele utilizar ampliamente en informática, por ejemplo para indicar direcciones de memoria.
Existen distintos códigos para representar cada carácter con un combinación de bits. Uno de estos códigos es el ASCII.
Muestra de algunos caracteres codificados, extraídos de una tabla de código ASCII:

Carácter Equivalente Binario Equivalente Decimal Carácter Equivalente Binario Equivalente Decimal
espacio 0100000 32 a 1100001 97
. (punto) 0101110 46 b 1100010 98
0 0110000 48 c 1100011 99
1 0110001 49 d 1100100 100
2 0110010 50 e 1100101 101
3 0110011 51 f 1100110 102
4 0110100 52
5 0110101 53
6 0110110 54
7 0110111 55
8 0111000 56
9 0111001 57

CONJUNTOS NUMERICOS

Números Naturales
Dicho en términos muy simples, los números naturales son los que sirven para contar.
El conjunto de los números naturales tiene las siguientes propiedades:
· Al conjunto de los números naturales pertenecen el 0 y el 1.
· Si se suma a un natural el número 1 el resultado es otro número natural.
· Por lo tanto el conjunto de los naturales es un conjunto infinito.
· Las propiedades enunciadas anteriormente constituyen el Axioma de Inducción Completa.

Números Enteros
El conjunto de números enteros, es también infinito.
Son parejas de números naturales (x,y), cuya resta x-y define un número entero.
Por ejemplo: la pareja (7,3) define el entero positivo 4 ya que 7 - 3 = 4.
la pareja (2,4) define el entero negativo -2 ya que 2 - 4 = -2.
Existe un isomorfismo entre parte del conjunto de los números enteros y el de los números naturales; ya que el conjunto de los naturales es el de los enteros positivos.
Al conjunto de los enteros también pertenece el 0 que está definido por todas aquellas parejas de naturales iguales (1,1) ; (56,56) ; etc.

Números Racionales
El conjunto de números racionales está integrado por parejas de números enteros cuyos elementos se dividen entre sí.
A este conjunto también pertenece el 0, que está definido por todas aquellas fracciones que tienen al 0 por numerador.
Los racionales serán positivos o negativos según sea el signo de cada uno de los integrantes de las parejas que los definen.
Así será que parejas de enteros de igual signo definirán un racional positivo; y parejas de enteros de distinto signo definirán un racional negativo.
No existen racionales cuyo denominador sea 0.

Números Reales
El campo de los números reales es más amplio que el de los racionales; ya que incluye números que no están formados por parejas de enteros. Por ejemplo la relación que existe entre una circunferencia y su diámetro no es un racional.???(número
Se trata de un conjunto también infinito.
Siempre entre dos números reales hay otro número real; de ahí que se asocie al conjunto de los números reales con una recta. La recta está formada por infinitos puntos y cada punto representaría un número real.

COMPLEMENTOS

Este tipo de operación se utilizan en las computadoras digitales para simplificar la operación de sustracción y para manipulaciones lógicas.
Existen 2 tipos de complementos :
a) El complemento de r.
b) El complemento de r-1.

a)El complemento de r.
El complemento de r de un número positivo N en base r con una parte entera de n dígitos, será definido como el complemento de r a n y se define como rn-N;
Obtener el complemento de 10 de (52520)10
105-52520=47480
Obtener el complemento de 10 de (0.3267)10
100-0.3267=0.6733
Obtener el complemento de 10 de (25.639)10
102-25.639=74.361
Ejemplo: Obtener el complemento de 2 de (101100)2
26-(101100)2 = (100000)2-(101100)2=(0.1010)2
Por lo tanto tendremos que el complemento de 10 de un número decimal se puede formar dejando todos los ceros significativos sin cambios se resta el primer dígito del cero menos significativo de 10 y, entonces se restan todos los pocos dígitos menos significativos menores de 9.
El complemento de 2 puede formarse dejando todos los ceros menos significativos y el primer dígito diferente de 0 sin cambio, entonces se reemplazan los 1 por 0 y los 0 por 1 en los otros dígitos mas significativos.

b)Complemento de r-1.
Para un número positivo N en base r con una parte entera de n dígitos y una parte fraccionaria de n dígitos y una parte fraccionaria de m dígitos, el complemento de r-1 de m se define como rn-r-m-N. Ejemplos :
Obtener el complemento de 9 de (52520)10
105-100-52520=47479
Obtener el complemento de 9 de (0.3267)10
100-10-4-0.3267=0.6732
Obtener el complemento de 9 de (25.639)10
102-10-3-25.639=74.36
Obtener el complemento de 1 de (101100)2
26-20-101100=10011
Obtener el complemento de 1 de (0.0110)2
20-2-4-0.0110=
Por lo tanto deducimos que :
El complemento de 9 de un número decimal se forma simplemente al restar cada dígito de 9. Y el complemento de 1 de un número binario es mas simple, ya que solo consiste en cambiar los 1 por 0 y los 0 por 1. Puesto que el complemento de r-1 es fácil de obtener, algunas veces es conveniente usarlo cuando se desea el complemento de r.

Sustracción con complemento de r.
La sustracción de 2 números positivos (M-N), ambos en base r, puede hacerse como sigue :
1.- Agréguese el minuendo m al complemento de r del sustraendo n.
2.- Verifique el resultado que se obtuvo en el paso 1 para el caso que exista un acarreo final.
a) Si existe un acarreo final, descártese.
b) Si no existe un acarreo final, tómese el complemento de r de número que se obtuvo en el paso 1 y colóquese un signo negativo en frente.

Ejemplo :
Utilizando el complemento 10 reste 72532-03250
complemento 10 de 03250=96750
72532-96750=69282
como no existe acarreo final se utiliza el paso b).
complemento 10 de 69282=27468
03250-27468=30718
complemento 10 de 30718=69282
resultado -69282
Utilizando el complemento 2 realice M-N con los números binarios dados.
M=1010100
N=1000100

complemento de N = 0111100
0111100
1010100
-----------
1 0010000
1011
1110
------
0101

1011
0001
------
1100

Resultado = -0011

Sustracción con complemento (r-1).

El procedimiento para esta operación es exactamente el mismo que para el complemento a r excepto por una variación llamada acarreo final. Para la resta de M-N en base r puede calcularse tomando en cuenta los siguientes puntos :
1.- Agréguese el minuendo M al complemento de (r-1) del sustraendo N.
2.- Verifique el resultado que se obtuvo en el paso 1 para un acarreo final.
a) Si ocurre un acarreo final agréguese uno al dígito menos significativo (acarreo final desplazado).
b) Si no ocurre un acarreo final tómese el complemento de (r-1) del número obtenido en le paso 1 y colóquese al frente un signo negativo.

Ejemplo :

Realice el complemento de r-1 de M-N, M=72532 y N=03250
complemento 9 de N = 96749
72532
96749
--------
1 69281
como existe un acarreo final se realiza el paso a)
69281+1=69282
Realice el complemento de r-1 de M-N, N=03250 y M=72532
complemento 9 de N = 72532
03250
27467
---------
30717
como no existe acarreo final se realiza el paso b)
complemento 9 de 30717=69282
Resultado -69282


Ejemplo :
Obtener M-N para los siguiente valores, M=1010100 y N=1000100
complemento 1 de 1000100 = 0111011
1010100
0111011
-----------
1 0001111
como existe un acarreo final se realiza el paso a)
0001111
1
----------
0010000

El complemento 1 y 2 son muy semejantes pero el complemento 2 generalmente es mas usado debido a las ventajas que representa al aplicarse en circuitos.
Ejemplo : La suma de 2 números positivos +9 y +4
+9 01001 cosumando
+4 00100 sumando
--- -------- -------------
+13 01101 suma = +13

NOTA : Los bits de signo del cosumando y el sumando ambos son cero y pos lo tanto el bit del signo de la suma es cero, lo cual indica que la suma es positiva. Nótese que el cosumando y el sumando se forman con el mismo número de bits, esto siempre debe llevarse a cabo en el sistema de complemento 2.

Ejemplo: Un número positivo y un número negativo menor.
+9 01001
-4 11100
--- ----------
+5 1 00101
Este acarreo se desprecia de manera que el resultado es 00101 (+5)
NOTA : En este caso el bit del signo del sumando es uno. Observe que el bit del signo (+) también participa en el proceso de adición, de hecho, se genera un corrimiento en la última posición de la suma, este corrimiento siempre es despreciado, de modo que la suma final es 00101 = (+5).
Ejemplo:Un número positivo y un numero negativo mayor.
-9 1 0111
+4 0 0100
--- --------
-5 1 1011
Se le saca el complemento 2
0100
1
------
0101
Se le agrega el bit de signo 10101 (-5).

NOTA:La suma en este caso tiene un bit de signo 1, lo cual indica que es negativo, esta se encuentra en su forma de complemento 2 de manera que los últimos 4 bits (1011), representan en realidad el complemento 2 de la suma.
Para determinar la magnitud verdadera de la suma, debemos de tomar el complemento 2 de 1011, el resultado será 0101(5).
Ejemplo:2 números negativos -9 y -4.
-9 1 0111
-4 1 1100
---- ---------
-13 1 1 0011
Se toma el complemento 2
Resultado:1 1101
Este resultado final vuelve a ser negativo y esta en forma de complemento 2 con un bit de signo 1. Nótese que 0011 es el complemento 2 de 1101(+13).


Ejemplo:2 números iguales y opuestos.
- 9 1 0111
+9 0 1001
--- ---------
0 1 0 0000

Sustracción con complementos a 2.

Esta operación en realidad comprende la operación de adición que hace uso del sistema de complemento 2.
Cuando se resta un número binario (el sustraendo) de otro número binario (el minuendo), el procedimiento es como sigue :
1.- Tómese el complemento 2 del sustraendo, incluye el bit del signo. Si el sustraendo es un número positivo, este se transforma en un número negativo en forma de complemento 2. Si el sustraendo es un número negativo, este se convertirá en uno positivo en forma binaria verdadera. En otras palabras se altera el signo del sustraendo.
2.- Después de formar el complemento 2 del sustraendo este se suma al minuendo. El minuendo se conserva en su forma original. El resultado de esta adición representa la diferencia que se pide. El bit del signo de esta diferencia determina si es positivo o bien negativo, y si esta en forma binaria verdadera o en forma de complemento 2.
3 :- Recuérdese que ambos números deben tener el mismo número de bits.
Ejemplo:
+9 01001
- +4 11100
--- ---------
+5 1 00101

TABLAS DE VERDAD

Las tablas de valores de verdad constituyen una manera objetiva de detallar los valores de verdad de proposiciones compuestas y polinomios booleanos, dependiendo de los valores de verdad de las variables y constantes proposicionales que los conforman.

Ejemplo 32:
Elaborar la tabla de valores de verdad de la negación de una proposición p.
Respuesta:
La tabla de valores de verdad correspondiente es:
p p'
V F
F V
Se observa que la columna que contiene los valores de verdad de la negación de la proposición es opuesta a la columna de valores de verdad de p.

Ejemplo 33:
Elaborar las tablas de valores de verdad de la conjunción, la disyunción inclusiva, la disyunción exclusiva, el condicional y el bicondicional.
Respuesta:
Las tablas de valores de verdad son:

V V V V F V V
V F F V V F F
F V F V V V F
F F F F F V V

Es importante observar que las columnas que contienen los valores de verdad del condicional y su contrapositiva son idénticas. Así mismo, las columnas con los valores de verdad de la conversa y la inversa de un condicional son también iguales. La igualdad entre valores de verdad de varias expresiones lógicas (equivalencia lógica) se analiza posteriormente.
Ejemplo 35:
Preparar una tabla de valores que analice el hecho de que al aumentar la oferta de un producto disminuye su precio en el mercado, basándose en el comportamiento real de tal fenómeno. En base a esa tabla de valores describir en palabras esa ley económica.

Si se compara la tabla de valores de verdad de la ley estudiada, con las tablas de valores de las diferentes operaciones lógicas que se pueden efectuar con proposiciones, se encuentra que esta tabla es similar a aquella correspondiente al bicondicional, por lo que una manera de expresar esta ley, desde un punto de vista matemático, es:
p " q : si la oferta aumenta entonces disminuye el precio, y si el precio disminuye entonces la oferta aumenta.
Es evidente que este texto no refleja cual es el verdadero sentido de la ley económica enunciada. Es preferible remitirnos al texto literal de la ley, donde los valores de verdad verdaderos corresponden a la conjunción de dos condicionales, de modo que una expresión más apropiada de la ley sería:
(p ® q) Ù (p' ® q') : si la oferta aumenta entonces disminuye el precio, y si la oferta disminuye entonces aumenta el precio.


ELABORACIÓN DE LAS TABLAS DE VALORES DE VERDAD DE POLINOMIOS BOOLEANOS:

Se recomienda el siguiente procedimiento para elaborar las tablas de valores de verdad de polinomios booleanos y proposiciones compuestas:
i. Se establece el número n de variables proposicional simples, diferentes, que conforman el polinomio booleano.
ii. Se determina el número N de posibles combinaciones entre valores de verdad de las variables proposicionales, mediante la expresión:
N = 2n
iii. Se reserva una columna de la tabla, en su sector izquierdo, para cada variable y para cada constante proposicional, y se escribe en la parte superior de esa columna la letra que representa a la variable proposicional o a la constante proposicional, en ese orden.
iv. Se reservan N filas de la tabla para escribir en ellas las N combinaciones de valores de verdad de las proposiciones.
v. Se separa una columna de la tabla por cada ocasión que aparezca una proposición o un operador lógico dentro de la expresión del polinomio booleano y se escribe esa proposición o ese operador, siguiendo el orden especificado en la fórmula, encabezando la respectiva columna. Se anotan además los signos de agrupación, que indican el orden de realización de las operaciones.
vi. Se escriben las distintas combinaciones entre valores de verdad de variables y constantes proposicionales. Para el efecto se pueden utilizar las siguientes reglas:
a) En la columna que corresponde a la primera variable proposicional se escriben valores de verdad verdaderos (V) en la primera mitad de los recuadros, y falsos (F) en la segunda mitad.
b) Para las siguientes columnas, correspondientes a variables proposicionales, se alternan los valores verdaderos (V) y falsos (F). Los grupos de alternancia tienen un tamaño igual a la mitad de los grupos de alternancia correspondientes a la columna anterior.
c) Se escriben los valores de verdad de las constantes proposicionales, si las hubiere.
vii. Se escriben los valores de verdad de las variables y constantes proposicionales que aparecen en la fórmula, anotándose en la parte inferior de la columna correspondiente, un número que exprese el orden en que se ha llenado esa columna.
viii. Se llenan las columnas restantes, en concordancia con los operadores y signos de agrupación, colocando, así mismo, un número en la parte inferior de la columna que indique el orden de llenado de la misma. Este número tiene por objeto facilitar la revisión de las operaciones realizadas.

ÁLGEBRA BOLEANA

Un álgebra boleana es un conjunto de B de elementos A, B .......... Dotado de 2 operaciones binarias llamadas suma y producto que se denotan respectivamente "+" y "*".

Es un álgebra que tiene que ver con las variables binarias y operaciones lógicas. Las variables se designan por tres letras tales como a, b, x, y.

Las tres operaciones básicas lógicas son :

AND, OK, COMPLEMENTO(NOT).

Una función boleana es una expresión algebraica formada por variables binarias, los símbolos de operación lógica (),= y signos de igual. Para un valor dado de las variables, la función boleana puede ser un cero o un 1.


Operaciones aritméticas y lógicas

Existen varias operaciones aritméticas que se pueden ejecutar en números binarios y hexadecimales, por ejemplo, podemos sumar, restar, multiplicar, dividir y otras operaciones aritméticas más, aunque es aconsejable que Usted sepa ejecutar éstas operaciones a mano, es más recomendable que haga uso de una calculadora apropiada, básicamente para evitar errores ya que nuestro pensamiento está condicionado por años al sistema numérico de base 10. Por otra parte, al intentar ejecutar una operación aritmética en formato binario es fácil caer en errores debido a la verbosidad mencionada, en éste caso es recomendable que primero haga la conversión a formato hexadecimal, ejecute las operaciones necesarias y finalmente vuelva a convertir el resultado a formato binario.

Operaciones lógicas en bits

Existen cuatro operaciones principales que Usted puede ejecutar en números binarios y hexadecimales: AND, OR, XOR (OR exclusivo), y NOT. Al contrario de las operaciones aritméticas, no se requiere calculadora para ejecutar éstas operaciones, por lo general es más fácil y rápido ejecutarlas a mano que valiendose de una calculadora.

La operación lógica AND es como sigue:

0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1

Las operaciones lógicas se pueden representar con una tabla llamada tabla de verdad, es parecida a las tablas aritméticas que sirven para sumar ó multiplicar, la columna de la izquierda y el renglón superior representan los valores de entrada de la operación especificada, el valor encontrado en la intersección de la columna y el renglón para un particular par de valores de entrada es el resultado de adicionar (ANDing) ambos valores. En palabras comunes, la operación AND se describe así, "si el primer valor y (and) el segundo valor son 1, el resultado es 1, caso contrario el resultado es 0".

Un hecho importante acerca de la operación lógica AND es que se puede utilizar para forzar un resultado a cero, si uno de los operandos es cero, el resultado es siempre cero independientemente del otro operando, esto se puede verificar en la tabla de verdad de arriba en donde tanto el renglón como la columna que contienen ceros el resultado es cero, por el contrario, si uno de los operandos contiene 1, el resultado es exáctamente el valor del otro operando. Ésta característica de la operación lógica AND es muy importante, particularmente con cadenas de bits en donde deseamos forzar algún bit individual de la cadena a cero.
El operador lógico OR se define así:

0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1

La tabla de verdad tiene la siguiente forma:
OR 0 1
0 0 1
1 1 1
En palabras decimos: si el primero de los operandos ó (OR) el segundo de los operandos (ó ambos) es 1, el resultado es 1, de lo contrario el resultado es 0. A ésta operación lógica también se le conoce como OR inclusivo. Si uno de los operandos es uno, el resultado es siempre uno independientemente del valor del segundo operando, si uno de los operandos es cero, el resultado es siempre el valor del segundo operando. Ésto es importante como veremos más adelante.
La operación lógica XOR (OR exclusivo) se define así:

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

La tabla de verdad es la siguiente:
XOR 0 1
0 0 1
1 1 0
Si el primer operando ó el segundo operando pero no ambos, es uno, el resultado es uno, de lo contrario el resultado es cero. Si uno de los operandos en la operación lógica OR exclusivo es uno, el resultado es siempre el inverso del otro operando. Ésta característica le permite invertir bits selectivamente en una cadena de bits.
El operador lógico NOT acepta solamente un operando y está definido como:

NOT 0 = 1
NOT 1 = 0

La tabla de verdad es la siguiente:
NOT 0 1
1 0


Operaciones lógicas en números binarios y cadenas de bits

Como dijimos en la sección previa, las funciones lógicas trabajan sólo con operandos de un solo bit, como las computadoras utilizan grupos de ocho, dieciséis ó treinta y dos bits, necesitamos extender la definición de éstas funciones para trabajar con más de dos bits. Las funciones lógicas en los procesadores 80x86 operan en una base de bit por bit (en inglés es bitwise). Dados dos valores en determinada posición, las funciones producen el resultado de la respectiva posición, por ejemplo, para calcular la operación lógica AND en los siguientes dos números de ocho bits se debe ejecutar la operación lógica AND en cada columna, independientemente de las demás:

1011 0101
1110 1110
---------
1010 0100
Ésta forma de ejecutar bit por bit (bitwise) puede fácilmente ser aplicada a otras operaciones lógicas. Como hemos definido las operaciones lógicas en términos de valores binarios encontrará que es mucho más fácil de ésta manera que utilizando otras bases, por tanto es recomendable hacer la conversión a formato binario.


Números con signo y sin signo

Hasta éste momento, hemos tratado a los números binarios como valores sin signo, el número binario ...00000 representa al cero, ...00001 representa al uno, ...00010 representa al dos, y así seguido, pero ¿Qué hay con los números negativos? En ésta sección discutiremos cómo representar números negativos utilizando el sistema de numeración binario.

Para representar números con signo utilizando el sistema de numeración binario tenemos que colocar una restricción a nuestros números, éstos deben tener un número finito y fijo de bits. En lo que concierne a los procesadores 80x86 ésta restricción no es muy importante, después de todo, los 80x86 sólo pueden direccionar un número finito de bits. Para nuestros propósitos limitaremos el número de bits a ocho, 16, 32 ú otro número pequeño de bits.

Con un número fijo de bits sólo podemos representar un cierto número de objetos, por ejemplo, con ocho bits sólo podemos representar 256 objetos diferentes. Los valores negativos son objetos por su propio derecho al igual que los números positivos, por tanto necesitamos utilizar algunos de los 256 valores diferentes para representar a los números negativos, en otras palabras, utilizaremos algunos de los números positivos para representar números negativos, y aún más, asignaremos la mitad de las posibles combinaciones para los números negativos y la otra mitad para los números positivos. Así podemos representar los valores negativos que van del -128...-1 y los valores positivos del 0...127 con un solo byte de ocho bits. Con una palabra de 16 bits podemos representar valores en el rango de -32,768 hasta +32,767. Con una palabra doble de 32 bits se pueden representar valores que van de -2,147,483,648 hasta +2,147,483,647. En general, con n bits podemos representar los valores con signo en el rango comprendido entre -2n-1 hasta 2n-1-1.

Bien, ¿Cómo podemos representar valores negativos? Existen muchas formas pero los procesadores 80x86 utilizan la notación de complemento de dos, en éste sistema, el bit de alto orden de un número es el bit de signo. Si el bit de alto orden es cero el número es positivo, si el bit de alto orden es uno, el número es negativo. En el caso de un número positivo, éste es almacenado como un valor binario estándar, pero si el número es negativo éste es almacenado en la forma de complemento de dos, para ésto se utiliza el siguiente algoritmo:

1. Se invierten todos los bits en el número, es decir, se aplica la función lógica NOT.
2. Se agrega uno al resultado invertido.
Por ejemplo, para calcular el equivalente en ocho bits de -5:

0000 0101 cinco (en binario)
1111 1010 Se invierten todos los bits.
1111 1011 Se suma uno para obtener el resultado.
Si tomamos el valor de menos cinco y le ejecutamos la operación de complemento de dos obtenemos el valor original, como es de esperarse:

1111 1011 complemento de dos para -5.
0000 0100 se invierten todos los bits.
0000 0101 se suma uno para obtener el resultado (+5).

Puertas logicas

NOT:

OR:

AND:

XOR:

NOR:

NAND:

Para realizar operaciones con diferentes señales existen diferentes dispositivos, llamados puertas logicas que procesan señales. Tienen una (o varias) entradas y una salida. Las puertas logicas mas significativas son: NOT, AND, OR y XOR.
NOT:
Significa no en ingles y devuelve el contrario de su entrada:
Entrada A Salida B
1 0
0 1

La tabla que expresa el valor de las entradas y sus respectivas salidas se llama "tabla de la verdad". Simbolo de un componente NOT.
Ademas las operaciones que realizan las puertas logicas se pueden expresar con ecuaciones:
B = NOT A B = /A B = A'
AND:
El significado de esta palabra inglesa es "y". Su tabla de la verdad es la siguiente:
Entrada A Entrada B Salida C
0 0 0
1 0 0
0 1 0
1 1 1

La tabla de la verdad del AND tiene la caracteristica unica de que la salida solamente es verdadera si las dos entradas lo son. Simbolo de un componente AND.
La logica booleana describe el comportamiento del AND.
OR:
La expresion inglesa significa "o" y el comportamiento de la puerta logica es simple: si una u otra entrada es verdadera la salida es verdadera:
Entrada A Entrada B Salida C
0 0 0
1 0 1
0 1 1
1 1 1

La tabla de la verdad del OR tiene la caracteristica de que la salida es verdadera si unicamente una de las dos entradas lo es. Simbolo de un componente OR.
XOR:
Es una puerta logica similar al OR con la unica diferencia que tambien es verdadera cuando las dos entradas lo son:
Entrada A Entrada B Salida C
0 0 0
1 0 1
0 1 1
1 1 0

La tabla de la verdad del OR tiene la caracteristica de que la salida es verdadera si unicamente una de las dos entradas lo son. Simbolo de un componente XOR.


Logica Booleana

El matematico ingles George Boole estudio las expresiones logicas, creando lo que hoy se denomina logica booleana. Esta logica se aplica cuando hay dos unicos valores (verdadero y falso, 1 y 0).
En la logica booleana, AND (interseccion logica) corresponde mas o menos a la multiplicacion. En este campo se utiliza un simbolo especial, pero en electronica habitualmente se escribe:
C = A * B o, simplemente: C = AB
Los resultados, en este caso, corresponden a los de la multiplicacion normal:
0 * 0 = 0
1 * 0 = 0
0 * 1 = 0
1 * 1 = 1


Teorema de De Morgan

Logica combinatoria
La fuerza de la electronica de hoy en dia se debe a la logica combinatoria, ya que la sencillez de una sola puerta logica impide que esta pueda desarrollar un trabajo complejo.
Hasta ahora hemos visto, por ejemplo, una puerta AND, pero que unicamete tenia dos entradas. Si queremos un AND de varias entradas necesitaremos combinar diferentes puertas AND. Si conectamos a la salida de un AND una entrada de otro AND tendermos una AND de tres entraadas, en el que las dos entradas del primero y la entrada libre del segundo seran las entradas y la salida del segundo AND sera la salida del AND de tres entradas:
Entrada A Entrada B Entrada C Salida D
X X 0 0
X 0 X 0
0 X X 0
1 1 1 1

La tabla de la verdad del AND de tres entradas. La salida no es 1 al menos que todas las entradas lo sean. Construccion de un AND de tres entradas con la logica combinatoria.
Como puede ver se pueden combinar las diferentes puertas logicas para conseguir dispositivos con diferentes comportamientos como este NOR y NAND, que son un OR y un AND con la salida negada, por lo que su salida es la inversion de la de un OR y AND:


Volver a Prácticas