Capitulo - I
Capitulo - I
Capitulo - I
CUSCO
DEPARTAMENTO ACADÉMICO DE INGENEIRIA
ELÉCTRICA
1.1 Introducción
Es común decir que vivimos en la era de la informática, en la cual dominan
los computadores y las máquinas basadas en ellos. Las máquinas electrónicas nos
ayudan a realizar nuestras tareas intelectuales en una forma que puede compararse
al apoyo proporcionado por las máquinas mecánicas, como las máquinas de vapor,
introducidas en la revolución industrial del siglo XIX para aligerar el esfuerzo
físico del trabajo humano. El computador es un producto de la tecnología
electrónica del siglo XX y su forma actual ha sido moldeada principalmente por el
desarrollo de los circuitos integrados en las últimas décadas. Estos pequeños
dispositivos electrónicos sirven como bloques básicos para construir no solo
computadores, sino una gama muy amplia de máquinas procesadoras de
información, las cuales llamamos sistemas digitales. Estos sistemas están
diseñados para almacenar, transformar y comunicar información en forma digital.
Los sistemas digitales se construyen a partir de circuitos integrados que procesan
dígitos binarios (ceros y unos), aunque muy pocos problemas de la vida real están
basados en números binarios. Un diseñador de sistemas digitales debe establecer
cierta correspondencia entre los dígitos binarios que procesan los circuitos
digitales y los números, eventos y condiciones de la vida real.
1.2. Sistemas digitales y analógicos
Los sistemas y dispositivos analógicos procesan las señales variantes en el
tiempo que pueden adquirir cualquier valor a lo largo de un intervalo continuo de
voltaje, corriente u otra medida. Del mismo modo lo hacen los sistemas y circuitos
digitales, una señal digital se modela para tomar, en cualquier instante, solamente
uno de dos valores discretos, que denominamos 0 y 1 ( o BAJO y ALTO, ó F y V)
a) Sistema analógico.- Los valores que pueden asignarse a una variable
analógica no están separados por discontinuidades (ó huecos), sino que forman
una secuencia regular y sin interrupciones. De esta manera, entre los valores A
y B de una escala de medición analógica, como una regla se puede hallar un
valor intermedio como C = (A+B)/2. Entre A y C está D = (A+C)/2; entre A y
D se encuentra E = (A+D)/2, y así sucesivamente. Esto significa que entre dos
puntos cualesquiera de la regla hay un número infinito de otros puntos, cada
uno de los cuales representa o sirve como “analogía” de una distancia física
que se medirá.
b) Sistema Digital.- La información digital, se representa con un número fijo
de símbolos discontinuos o discretos, llamados dígitos. Un ejemplo común de
esta representación son los 10 dígitos decimales {0,1, 2, 3, 4, 5, 6, 7, 8, 9}, que
se usan para construir números. Los computadores (sistemas digitales), como
veremos mas adelante,prefieren números binarios y emplean dos dígitos {0, 1}.
1.3. Sistemas de numeración posicional.
En un sistema de esta clase, un número se representa por medio de una cadena
de dígitos, donde cada posición del dígito tiene un peso asociado. El valor de un
número es una suma ponderada de los dígitos, por ejemplo:
Cada peso es una potencia de 10 que corresponde a la posición del dígito. Un punto
decimal permiten que se utilicen tanto potencias negativas como positivas de 10,
ejemplo:
3962.48 = 3x1000 + 9x100 + 6x10 + 2x1 + 4x0.1 + 8x0.01
…………………………….. ( 1 )
…………………………………. (2)
0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 1 1 0 0 0 1
1 0 2 2 0 1 0 2 0 0 1 0
1 1 3 3 0 1 1 3 0 0 1 1
1 0 0 4 4 1 0 0 4 0 1 0 0
1 0 1 5 5 1 0 1 5 0 1 0 1
1 1 0 6 6 1 1 0 6 0 1 1 0
1 1 1 7 7 1 1 1 7 0 1 1 1
1 0 0 0 8 _ ___ 8 1 0 0 0
1 0 0 1 9 _ ___ 9 1 0 0 1
1 0 1 0 10 _ ___ A 1 0 1 0
1 0 1 1 11 _ ___ B 1 0 1 1
1 1 0 0 12 _ ___ C 1 1 0 0
1 1 0 1 13 _ ___ D 1 1 0 1
1 1 1 0 14 _ ___ E 1 1 1 0
1 1 1 1 15 _ ___ F 1 1 1 1
Para convertir un número binario en otal, se parte del punto binario separando los bits en
grupos de tres, desplazándose hacia la izquierda, reemplazando luego cada grupo con el
correspondiente dígito octal:
1 0 0 0 1 1 0 0 1 1 1 02 = 100 011 001 1102 = 43168
1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 12 = 011 101 101 110 101 0012 = 3556518
El procedimiento para la conversión de binario a hexadecimal es semejante, excepto que
utilizamos grupos de 4 bits: Ejemplos
1 0 0 0 1 1 0 0 1 1 1 02 = 1000 1100 1 1102 = 8CE16
1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 12 = 0001 1101 1011 1010 10012 = 1DBA916
Si un número binario contiene dígitos a la derecha e izquierda del punto binario se procede
en forma similar y tanto el lado izquierdo como el derecho pueden rellenarse con ceros para
obtener múltiplos de 3 ó 4 bits para convertirlo a octal ó hexadecimal. Ejemplos
1 0 . 1 0 1 1 0 0 1 0 1 12 = 010 . 101 100 101 1002 = 2.54548
= 0010 . 1011 0010 11002 = 2.B2C16
Para realizar la conversión inversa, simplemente reemplazamos cada dígito octal o
hexadecimal con la correspondiente cadena de 3 ó 4 bits, como se muestra a continuación:
13578 = 001 011 101 1112
2046.178 = 010 000 100 110 . 001 1112
BEAD16 = 1011 1110 1010 11012
9F.46C16 = 1001 1111 . 0100 0110 11002
1.5. Conversiones generales de sistema numérico posicional
En general, la conversión entre dos bases no puede hacerse por simple sustitución; se
requieren operaciones aritméticas, mostraremos en este ítem como convertir un número de
cualquier base a la base 10 y viceversa, haciendo uso de aritmética de base 10.
El valor de un número en cualquier base está dado por la relación:
DE = dp-1 dp-2 . . . d1 d0
DF = 0 , d-1 d-2 . . . d-n
después de la conversión, se unen los resultados binarios con un punto base (binario) para
crear la respuesta
B2 = D2E . D2F
D2F = 0.10100000
C 01 1 1 1 1 1 1 0 C 000000000
X 127 01111111 X 170 10101010
Y + 63 + 0 0 1 1 1 1 1 1 Y + 85 + 01010101
X + Y 190 10111110 X+Y 255 11111111
La resta binaria se realiza de manera similar, empleando prestamos (Bent y Bsal)
B 001111100 B 011011010
X 229 11100101 X 210 11010010
Y -46 - 00101110 Y - 109 -0 1 1 0 1 1 0 1
X – Y 183 10110111 X–Y 101 01100101
B 010101010 B 000000000
X 170 10101010 X 221 11011101
Y - 85 01010101 Y - 76 01001100
X–Y 85 01010101 X–Y 145 10010001
Suma hexadecimal
C 1 1 0 0 1 1 0 0
X 1 9 B 916 1 9 11 9
Y + C 7 E 616 + 12 7 14 6
X+Y E 1 9 F16 14 17 25 15
14 16 + 1 16 + 9 15
E 1 9 F
Representación de números negativos
Hasta ahora, solamente hemos tratado con números positivos, pero existen muchas
formas de representar números negativos. En los negocios utilizamos el sistema de magnitud
con signo, que se discutirá más adelante. Sin embargo, la mayor parte de las computadoras
emplean algunos de los sistemas numéricos de complemento que presentaremos
posteriormente.
a) Representación de magnitud con signo
En el sistema de magnitud con signo, un número se compone de una magnitud y de un
símbolo que indica si la magnitud es positiva o negativa.. De esta forma representamos
los números decimales: +89, -62, + 247.25 y -20 de la manera habitual , y también
suponemos que el signo es “+” si no aparece ningún símbolo escrito. Existen dos
posibles representaciones del cero “+0” y “-0” pero ambas tienen el mismo valor.
El sistema magnitud con signo se aplica a los números binarios haciendo uso de una
posición de bit extra para representar el signo (el bit de signo). Tradicionalmente, el bit
más significativo (MSB) de una cadena de bits es empleado como bit de signo (0=signo
más, 1=signo menos) y los bits de menor orden contienen la magnitud. Ejemplos
0 1 0 1 0 1 0 12 = +8510 1 1 0 1 0 1 0 12 = -8510
0 1 1 1 1 1 1 12 = +12710 1 1 1 1 1 1 1 12 = -12710
0 0 0 0 0 0 0 02 = +010 1 0 0 0 0 0 0 02 = -010
Un entero de magnitud con signo de n bits está situado dentro del intervalo que desde –(2n-1
– 1) hasta +(2n-1 -1) y existen dos posibles representaciones del cero.
11910 = 0 1 1 1 0 1 1 12 -12710 = 1 0 0 0 0 0 0 12
bits de complemento bits de complemento
10001000 01111110
+1 +1
1 0 0 0 1 0 0 12 = -119 0 1 1 1 1 1 1 12 = 12710
010 = 0 0 0 0 0 0 0 02 - 12810 = 1 0 0 0 0 0 0 02
bits de complemento bits de complemento
11111111 01111111
+1 +1
1 0 0 0 0 0 0 0 02 = 010 1 0 0 0 0 0 0 02 = - 12810
Si ocurre un acarreo fuera de la posición del MSB, se ignora y solamente se utilizan los “n”
bits de menos orden del resultado.
En el sistema de complemento a dos, el cero se considera positivo, por lo que acabamos con
un número negativo extra, - ( 2n-1 ), que no tiene homologo positivo.
1 1 1 0 1 1 1 02 = -1710 0 1 1 0 0 0 1 12 = 9910
11910 = 0 1 1 1 0 1 1 12 -12710 = 1 0 0 0 0 0 0 02
1 0 0 0 1 0 0 02 = -11910 0 1 1 1 1 1 1 12 = 12710
+3 0011 -2 1110
+ +4 +0100 + -6 +1010
+7 0111 -8 1 1000
+6 0110 +4 0100
+ -3 +1101 + -7 +1001
+3 10011 -3 1101
Desbordamiento
Si una operación de suma produce un resultado que excede el intervalo del sistema
numérico, se dice que ocurre un desbordamiento. El desbordamiento se presenta cuando
sumamos dos números con el mismo signo (sean positivos ó negativos). La suma de dos
números con signos diferentes nunca puede producir desbordamiento, como se muestra en
los ejemplos siguientes:
-3 1101 +5 0101
+ -6 + 1010 + +6 + 0110
-9 1 0 1 1 1 = +7 +11 1 0 1 1 = -5
-8 1000 +7 0111
+ -8 + 1000 + +7 +0111
-16 1 0 0 0 0 = +0 +14 1 1 1 0 = -2
Existe una regla simple para detectar el desbordamiento en la suma: una suma provoca
desbordamiento si los signos de los sumandos son los mismos y el signo de la suma es
diferente del signo de los sumandos. También la regla del desbordamiento se puede
establecer en términos de acarreos que se generan durante la operación de suma: una suma
provoca desbordamiento si los bits de acarreo de entrada Cent y de salida Csal de la
posición de signo son diferentes.
Reglas de la resta
Los números de complemento a dos pueden restarse como si fueran números binarios
ordinarios sin signo, y pueden formularse reglas apropiadas para detectar un desbordamiento.
La mayor parte de los circuitos de resta para números de complemento a dos no realizan la
resta en forma directa. En lugar de ello, hacen negativo el sustraendo tomando su
complemento a dos y posteriormente lo suman al minuendo aplicando las reglas normales
para la suma.
La negación del sustraendo y su adición al minuendo pueden llevarse a cabo con solamente
una operación de suma como se explica a continuación: realice un complemento bit a bit
del sustraendo y sume el sustraendo complementado al minuendo con un acarreo de
entrada (Cent) de 1 en lugar de 0.
A continuación presentamos algunos ejemplos:
1 Cent 1 Cent
+4 0100 0100 +3 0011 0011
- +3 - 0011 + 1100 - +4 - 0100 +1 0 1 1
+1 10001 -1 1111
1 Cent 1 Cent
+3 0011 0011 -3 1101 1101
- -4 -1100 +0011 - -4 - 1100 +0011
+7 0111 +1 1 0001
Regla.- Realice una suma binaria estándar; si hay un acarreo de salida de la posición de
signo, agregue 1 al resultado.
Esta regla se conoce a menudo como acarreo de redondeo final (end-around carry). A
continuación se muestra algunos ejemplos:
+3 00 11 +4 0100 +5 0101
+ +4 + 0100 + -7 + 1000 + -5 + 1010
+7 0111 -3 1100 -0 1111
11 1011 Multiplicando
x 13 x 1101 Multiplicador
33 1011
11 0000
143 1011
1011
10001111 Producto
En general, cuando multiplicamos un número de “n” bits por un número de “m” bits, para
expresar el producto resultante se requieren como máximo “n + m” bits. El algoritmo de
desplazamiento y suma requiere “m” productos parciales y sumas parciales para obtener el
resultado, pero la primera suma es trivial, puesto que el primer producto parcial es cero.
División Binaria
El algoritmo más simple de división binaria se basa en el método de desplazamiento y
resta que aprendimos cuando estudiamos en la primaria.
Disco mecánico de
codificación que utiliza
un código binario de 3
bits