Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo 1
Capitulo 1
Introducción
Los sistemas digitales se han desarrollado de una manera vertiginosa en tan sólo unas cuantas
décadas; se utilizan actualmente en casi todas las áreas de la vida cotidiana como la medicina,
finanzas, transporte, educación, entretenimiento, etc. Estos sistemas emplean circuitos
electrónicos integrados (circuitos lógicos) que incluyen desde decenas hasta millones de
dispositivos que funcionan como interruptores.
Para ilustrar estos conceptos, pensemos en un reloj de manecillas. Sabemos que el tiempo
transcurre en forma continua, y las manecillas se mueven supuestamente también en forma
continua, indicando un conjunto infinito de valores, aunque no podamos precisar en un
momento dado su posición exacta al observar la carátula del reloj, dado que la resolución de
la carátula es finita. La señal corresponde con la que se muestra en la Figura 1.1.1a.
En un reloj digital, por contraste, observamos que los segundos avanzan en pasos discretos
como 01, 02, 03, hasta 59. Al terminar dicha secuencia el conteo de los minutos aumenta por
1 (de 34 a 35, por ejemplo). Igualmente, la indicación de las horas aumenta por 1 después
que la de minutos rebasa el valor 59. Hablamos entonces de un sistema discreto, cuyos
valores están representados por dígitos cada intervalo de tiempo. (Figura 1.1.1b).
(a) (b)
Figura 1.1.1.- Lectura del tiempo (a) continua (b) discreta
La mayoría de las variables físicas de la naturaleza son continuas y, por tanto, analógicas:
temperatura, distancia, presión, velocidad, nivel de un fluido, etc. La medición o
procesamiento de dichas variables suele realizarse con aparatos eléctricos o electrónicos, ya
que es más sencillo y económico controlar señales eléctricas. Para ello se requiere efectuar,
desde luego, una transducción de la variable física a una eléctrica.
Originalmente, la señal eléctrica que resulta de un transductor suele ser analógica, y puede
medirse por tanto directamente en un multímetro analógico. La misma señal puede
transformarse en una señal digital. Esto puede lograrse mediante un sistema de conversión
analógico a digital (CAD); la señal resultante puede procesarse entonces mediante un sistema
digital. Si se requiere que la señal procesada se convierta de nuevo en analógica, utilizamos
un sistema de conversión digital a analógico (CDA).
Las señales binarias exhiben sólo 2 valores. La razón fundamental por la cual se emplea el
sistema binario es que resulta muy sencillo y económico implementar sistemas electrónicos
que sólo manejan dos valores, utilizando dispositivos que funcionan como interruptores,
llamados circuitos de conmutación. Estos exhiben voltaje alto o voltaje bajo; empleamos los
dígitos binarios 1 y 0 para representar voltajes en forma simbólica; por ejemplo, voltaje alto=1
y voltaje bajo=0. Los dígitos binarios se conocen como bits (abreviación de binary digit en
inglés).
Los circuitos de conmutación se conocen también como circuitos lógicos, puesto que
obedecen las reglas del cálculo proposicional (lógico) expresadas algebraicamente por el
matemático Francés George Boole en 1894. Este trabajo fue aplicado por Claude Shannon al
análisis de circuitos de conmutación (trabajo publicado en 1938). Al álgebra que formaliza
las reglas se le conoce como Algebra de Boole, la cual se presenta en el siguiente capítulo.
Las razones principales por las cuales los sistemas digitales tienden a reemplazar a los
analógicos son:
1. Los sistemas digitales son generalmente más fáciles de diseñar. Los valores de
voltaje exactos que entregan los circuitos digitales no son significativos; sólo importa
que entreguen valores dentro de un rango específico (voltajes altos o bajos,
equivalentes de los dígitos 1 ó 0, por ejemplo). Por lo tanto, son también menos
susceptibles a variaciones causadas por cambios de voltaje de línea, temperatura o
resistencia, que afectan más a circuitos analógicos.
2. Ofrecen una mayor precisión. La precisión en los sistemas digitales puede
aumentarse agregando más circuitos lógicos; los valores analógicos de más de unos
cuantos dígitos no pueden precisarse en un instrumento y, de nuevo, son más
susceptibles a variaciones y ruido.
3. Permiten almacenar información. Los sistemas digitales pueden almacenar
información por el tiempo deseado. Gracias a esto existen las computadoras digitales
y grandes bancos de datos, por ejemplo.
4. Los circuitos digitales pueden producirse con mucha mayor densidad (transistores
por milímetro cuadrado en un chip) que los circuitos analógicos. Los aparatos que
los incluyen son, por tanto, más pequeños, y consumen menos energía.
5. Los circuitos digitales resultan más económicos en general que los sistemas
analógicos que cumplen una función semejante. Esto debido a que los circuitos
digitales permiten una densidad mucho mayor (más transistores por área de silicio);
además, los sistemas analógicos requieren de un número mayor de componentes de
tecnología diferente, costosa y difícil de integrar tales como: capacitores de alto
valor, resistores de precisión, transformadores, etc.
6. Los sistemas digitales pueden programarse mucho más fácilmente que los
analógicos, tanto para su diseño, su configuración como para su operación.
El término de la izquierda corresponde con las unidades de millar (2x103 =2000); el siguiente
las centenas (700), luego el de las decenas (40), unidades (6), y por último los términos
fraccionarios (0.8+0.01). En términos algebraicos, podemos escribir
Los dígitos A toman los valores 0 a r-1. Así, si r=5, los dígitos utilizados son 0,1, 2, 3, 4. En
el caso del sistema binario (r=2), los dígitos son 0 y 1, y se conocen como bits (contracción
de las palabras del inglés binary digit) En el sistema decimal (r=10), los dígitos son 0, 1, 2,
3, 4, 5, 6, 7, 8, 9.
Para un sistema de base r mayor que 10, requerimos de símbolos adicionales para representar
los dígitos mayores que 9. En el sistema hexadecimal, por ejemplo, utilizamos los símbolos:
A=10, B=11, C=12, D=13, E=14, F=15.
Nos interesa en particular el sistema binario; en un sistema digital los bits se almacenan en
dispositivos llamados registros. El número binario de 8 bits 10010110, por ejemplo, se
almacena como en la Figura 2.3.1 El bit más significativo (MSB, del inglés most significant
bit) se encuentra en el extremo izquierdo, y el menos significativo (LSB, least significant
bit) en el derecho. El número puede representarse como se muestra en la Figura 1.3.1:
EJEMPLO 1.4.2. Calcular el valor decimal del número 4B05.2 base 16.
Solución: Aplicando la expresión 2.3.2 con r = 16 tenemos:
N = 4x163 + 11x162 + 5x161 + 2x16-1 = 16,384 + 2,816 + 80 + 0.125 = 19,280.125
Veamos primeramente como transformar la parte entera. El método más sencillo consiste en
efectuar una división entera del número decimal sucesivamente entre r, anotando los residuos
de cada división, hasta obtener un resultado cero; el último residuo corresponde con el dígito
más significativo. Este método, llamado de división repetida, se ilustra convirtiendo el
número 1742 base 10 a base 8:
Necesitamos determinar los coeficientes A-1, A-2, etc. Principiamos por A-1; para ello
multiplicamos ambos lados de la expresión 1.5.1 por r:
El valor de A-1 es justamente la parte entera de este resultado. Para obtener A-2, pasamos
A-1 al lado izquierdo de la última expresión, y volvemos a multiplicar por r:
ab cs
00 00
01 01
10 01
11 10
Tabla 1.7.1. Tabla de verdad de la suma de 2 bits
La convención aceptada en el sistema decimal para escribir un número con signo es anteponer
el signo (+ ó -) a la izquierda de la magnitud. En un sistema digital debemos emplear un bit
para representar el signo (0 para el signo +, 1 para el -), y respetamos la convención de
anteponerlo a la izquierda (bit más significativo). Si el resto del número binario es la
magnitud, que es igual para números positivos y negativos, llamamos al método de
representación como signo y magnitud. Por ejemplo, el número binario -28, representado por
un registro de 8 bits, resulta 10011100, mientras que el número +28 se representa como
00011100. Esta representación es muy sencilla de comprender, pero no se adapta bien a los
sistemas digitales para efectuar operaciones aritméticas mediante las reglas de adición de
números binarios como lo muestra el ejemplo siguiente, que consiste en sumar en binario -28
+ 4:
Acarreos 111
10011100
+00000100
10100000
Cabe preguntarse si es posible hallar otra representación para los números negativos en un
sistema digital que arroje resultados correctos al hacer operaciones de suma y resta de
números positivos y negativos. Exploramos esta posibilidad considerando el concepto de
complemento. Consideremos primeramente el complemento a 1. Para un número binario
entero x de n bits, el complemento a 1 C1x se define como el número y tal que, sumado a x,
arroja el resultado 1111…1 donde el número de 1s es igual a n. Esto se logra siempre y cuando
cada bit de y sea igual al complemento lógico de cada bit correspondiente de x. Por ejemplo,
si x=01001101, el complemento a 1 C1x de x es y=10110010, ya que x + y=11111111. En
pocas palabras, el bit k yk del número y es igual a xk´. Por ende, es muy sencillo obtener el
complemento a 1 de un número binario x; basta complementar cada bit de x (sustituir 1 por 0
ó 0 por 1), operación que puede realizarse con dispositivos denominados inversores.
10110010
+ 00000001
10110011
El lector podrá comprobar que x + (-x) = 100000000, donde el acarreo final 1 se descarta.
Esto es, -x =10110011. El bit más significativo es el signo, en este caso 1, negativo.
EJEMPLO 1.7.1. Efectuar la operación x-z, con x=00101011 y z=00100011. (En decimal, 43-
35).
Solución. x-z = x+(-z). El valor de C1z es 11011100, luego C2z=C1z+1=11011101. Hacemos
la suma ahora:
Acarreos 11111111
00101011
+ 11011101
100001000
Si descartamos el acarreo final=1, el resultado corresponde con el número decimal 8.
EJEMPLO 1.7.2. Efectuar la operación x-z, con x=00101011 y z=10111011.
Solución: Notar que, en este caso, z es negativo. El valor de C2z es igual a 01000101 (decimal
69), luego
Acarreos1111
00101011
+ 01000101
01110000
Este resultado corresponde con el número decimal 112, que es el correcto.
-2n-1 a (2n-1-1)
Cuando el resultado de una operación aritmética queda fuera de este rango, se ha rebasado la
capacidad del registro, y hablamos de un desbordamiento o sobreflujo. Por ejemplo, si
x= 00101011 y z = 10011100, C2z = 01100100 (decimal 100), y x - z resulta
Acarreos 0 1 1
00101011
+01100100
10001111
Este parece ser un número negativo, lo cual es imposible dado que 43+100=143 en decimal.
El problema proviene de haber rebasado la capacidad de representación de un número de
8 bits, (+127), lo cual ha producido un desbordamiento. Cabe preguntarse cómo saber si el
resultado de una operación aritmética es válido; esto es, si no hay desbordamiento. Puede
demostrarse que cuando hay desbordamiento, el acarreo hacia el penúltimo bit, Cn, es
diferente que el acarreo final, Cn+1. Llamando a esta condición V, tenemos que V=Cn Cn+1
(el operador se denomina O exclusivo); el valor de V es 1 si Cn difiere de Cn+1 La mayoría
de las computadoras detectan esta condición usando un dispositivo denominado compuerta
XOR que efectúa la operación.
1.8. Códigos
La representación de cadenas de bits que hemos empleado corresponde a una representación
binaria natural. Así como representamos números, podemos representar otro tipo de
variables: colores, claves de libros en una biblioteca, días de la semana, etc. La representación
puede ser binaria natural, cuando, por ejemplo, determinamos la clave de cada uno de 16
colores; en dicho caso requerimos 4 bits, desde 0000 hasta 1111. En otros casos, la
representación o código no necesariamente es binaria natural. Presentamos a continuación
algunos ejemplos importantes:
1.8.1. Código BCD. Para los seres humanos, es conveniente observar separadamente cada
dígito decimal en la pantalla de un dispositivo, aunque cada dígito esté representado en
binario. Así, el número decimal 185, por ejemplo, se representa como
Esta representación se denomina BCD, del inglés Binary Coded Decimal. Es evidente que
no corresponde con el número binario natural 185. Como un segundo ejemplo, el número
4832 se representa en BCD como 0100 1000 0011 0010.
4 8 3 2
b3b2b1b0 b6b5b4
000 001 010 011 100 101 110 111
0000 NUL DEL SP 0 P ´ p
0001 SOH DC1 1 A Q a q
0010 STX DC2 “ 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB ´ 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , < L l |
1101 CR GS = M ] m }
1110 SO RS . > N n
1111 SI US / O _ o DEL
Tabla 1.8.2.1 Tabla del Código ASCII estándar.
El código ASCII se utiliza para transferir información entre una computadora y dispositivos
periféricos (impresora, teclado, etc). Por lo general, la transmisión de los bits se efectúa en
serie, y se añade un octavo bit en la posición más significativa, denominado bit de paridad.
Su valor es tal que el total de bits debe ser par o impar de acuerdo con una paridad acordada.
Por ejemplo, si se acuerda que la paridad sea par, agregamos al código de la letra G (1000111)
el bit 0, y al de la letra O (1001111) el bit 1, de manera que, al teclear la palabra GO se
transmiten los octetos 01000111 y 11001111 en secuencia. Un octeto se conoce comúnmente
como un byte.
El bit de paridad que se añade permite detectar errores de transmisión de un número impar
de bits (1, 3, 5 o 7), ya que al ocurrir tal error se cambia la paridad acordada, y se solicita
una retransmisión. Por ejemplo, si se desea transmitir el código del número 4, y se acuerda
que la paridad debe ser impar, se debería transmitir el byte 00110100. Si ocurren errores en
2 de los bits, y se transmite x010000, x = 0 y el bit de paridad no los descubre, pero si se
alteran 3 bits, como x110000, ahora x = 1, y se solicita una retransmisión.
Estos circuitos se caracterizan por arrojar un sólo valor para una combinación específica de
los valores de entrada (estado de los interruptores o voltajes de entrada de las compuertas).
Se conocen como circuitos combinacionales.
Figura 1.9.4
Los circuitos digitales incluyen desde varias decenas hasta millones de compuertas y
registros, y utilizan los llamados circuitos integrados (CI) de baja (SSI), mediana (MSI), alta
(LSI) y muy alta (VLSI) densidad, que encapsulan unos cuantos o hasta millones de
componentes en un “chip” o circuito integrado (CI). Los circuitos utilizados como
compuertas AND, OR, así como NOT, NAND, NOR y XOR, que veremos en el capítulo
siguiente, vienen en un CI SSI, con 2, 3, 4 o 6 compuertas en el chip (dependiendo del número
de entradas).
1.10.4. Calcular el resultado de restar el número 57 del número 86 (ambos en base 10)
utilizando el sistema binario con 8 bits
Solución: Convertimos primeramente cada número a base 2:
RESUMEN
1. Se han presentado las características las diferencias fundamentales entre señales analógicas y digitales,
y las ventajas que presentan estas últimas para almacenar y procesar información (secciones 1.1 y 1.2).
2. Se presentaron fórmulas y algoritmos para la conversión de un número de base r a base 10, y viceversa
(secciones 1.3 a 1.5)
3. Se presentaron métodos sencillos de conversión de números binarios a bases octal y hexadecimal
(sección 1.6)
4. Se presentó la representación de números binarios negativos por medio de su complemento a 2, y
ejemplos de operaciones de suma y resta, incluyendo desbordamiento (sección 1.7).
5. Se presentaron códigos varios de representación numérica y alfanumérica: BCD, Gray, ASCII(sección
1.8).
6. Se presentó el concepto de función lógica, los operadores AND, OR, y su implementación por medio
de switches y compuertas lógicas (sección 1.9).
PROBLEMAS
1. Convierta los números de base 10 siguientes a:
a) Binario
b) Octal
c) Hexadecimal
1084.2, 798, 6477.25, 10044.8, 83.4, 1077.77
2. Convierta los números binarios siguientes a:
a) Base 10
b) Octal
c) Hexadecimal
11101001.01, 110000101.11, 1000100001, 1101.0111, 101010.10, 1.1110111
3. Represente los números de base 10 siguiente en código BCD
102, 1735.7, 888.8, 18699.253
4. Determine el valor de x si la paridad de los caracteres ASCII siguientes es par:
x0101111, x0010100, x1010000, x0101010
5 Determine la función lógica realizada por el siguiente arreglo de interruptores.
Figura C1.6
7 ¿Cuál es el número decimal más grande que puede obtenerse con
16 bits, 24 bits, 32 bits, 48 bits, 64 bits
8. En cada uno de los casos siguientes, determine la base r:
a) 314r =20410 b) 123r =3010 c) 1036r =14610
9. Escriba su nombre completo con caracteres ASCII y bit adicional de paridad
impar.
10. Convierta los números BCD siguientes a binario:
27.36, 149.72, 1024.02
11. Efectúe las operaciones siguientes con números binarios de 8 bits y representación de
números negativos con complemento a 2. Determine cuando existe desbordamiento.
83-58, 83+58, 47-93, 55-14, 112+23, 112-23
12. Determine el valor de x si representa a un bit de paridad par para los siguientes bytes:
x1011010, x0001001, x0101111
13. Represente al número 2048 en binario, BCD, ASCII
EXPERIMENTOS SUGERIDOS
1. Arme un circuito con interruptores en serie y en paralelo y diodos tipo LED para comprobar
las funciones lógicas básicas AND y OR en una tablilla tipo protoboard.