Documente Academic
Documente Profesional
Documente Cultură
Unidad N° 1
Representación de la
Información
Una magnitud digital: es aquella que varía a intervalos discretos, solo admite algunos
valores determinados, separados entre sí por intervalos finitos.
Una magnitud analógica es la que puede asumir cualquier valor continuo dentro de un rango
definido.
Figura 1-1: Sistema analógico para informar sobre el nivel de agua en un tanque
Página 1
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Figura 1-2: Sistema digital para informar sobre el nivel de agua en un tanque
Como se puede apreciar el sistema digital no representa todos los valores posibles que
puede tomar el nivel del agua en el tanque pero puede diseñarse un sistema tan preciso
que represente todos los niveles o valores que el usuario del sistema desee conocer.
Sistemas Numéricos
Los sistemas de numeración son conjuntos de dígitos usados para representar cantidades,
así se tienen los sistemas de numeración decimal, binario, octal, hexadecimal, etc. Estos
sistemas se caracterizan por tener una base (número de elementos utilizados para la
representación: diez, dos, ocho, dieciséis respectivamente).
Base: es la cantidad de símbolos que utiliza el sistema para representar las cantidades.
Una cantidad (magnitud) se representa por una cadena de elementos, y cada elemento de la
cadena tiene un valor asociado a la posición que ocupa dentro de la cadena, estos sistemas
de numeración se llaman también sistemas de numeración posicionales. Así, la cantidad
“33” esta representada por una cadena de dos elementos ‘3’ y el valor del ‘3’ de la derecha
no es igual al valor del elemento ‘3’ de la izquierda.
Página 2
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Digito de mayor peso 3 3 Digito de menor peso
3 * 101 + 3 * 100
peso peso
Esta característica nos permite definir los sistemas de numeración posicionales, donde un
elemento vale por lo que representa y por la posición que ocupa.
El sistema de numeración decimal es el más usado, tiene como base el número 10, o sea
que posee 10 símbolos diferentes para representar cualquier cantidad numérica.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
La posición de cada símbolo en un numero decimal indica la magnitud de la cantidad
representada y se le puede asignar un ‘peso’. Los ‘pesos’ para los números enteros son
potencias de 10, que aumentan de derecha a izquierda comenzando por 100 = 1
Por ejemplo el número decimal 72410 puede ser representado como:
Para los decimales los pesos son potencias de 10 que aumentan de derecha a izquierda
comenzando por 10 –1
Ahora nos podríamos preguntar por qué tenemos como sistema de numeración usual al
sistema decimal, por qué es el más usado por todo tipo de gente, a qué se debe que en todo
el mundo sea el sistema utilizado por las personas (ya que las máquinas no usan el sistema
decimal, sino el binario). La razón es que porque tenemos 10 dedos. Intuitivamente,
utilizábamos nuestra elemental calculadora: las manos, para contar, realizar sumas y restas
sencillas, etc.
Sistema Binario
El sistema numérico binario es un sistema posicional de base 2, es decir que posee dos
símbolos para representar cualquier cantidad numérica.
0,1
El equivalente decimal de un número binario se puede obtener a partir del polinomio antes
mencionado, de tal forma que
110102 = 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 2610
Página 3
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
101001012 = 1* 27+0 * 26+1 * 25+0 * 24+0 * 23+1 * 22+0 * 21+1 * 20 =16510
Los circuitos digitales manipulan números que están representados en binario. Así
podemos decir que un circuito digital actual tiene como entradas y salidas números en
binario. Es decir, números que vienen expresados con los dígitos ’0’ y ’1’. En la figura 1.x se
ha dibujado un circuito digital con 3 señales de entrada y cuatro señales de salida. Cada una
de las entradas y salida representa un dígito binario. ¿Pero cual es el peso de este dígito?
Eso nos lo indican los subíndices de las letras E y S. Así, la entrada E0 se corresponde con
el dígito de menor peso, la entrada E1 con los dígitos de peso 21, y así sucesivamente hasta
la entrada n que es la de mayor peso. Lo mismo es aplicable a la salida.
En los circuitos digitales, los números que se procesan, están expresados en binario,
tanto en la entrada como en la salida.
Un dígito binario, que puede ser ’0’ ó ’1’, recibe el nombre de BIT, (BInary digiT).
Utilizaremos los bits para indicar el tamaño de las entradas y salidas de nuestros circuitos.
Los circuitos digitales operan con números en binario, sin embargo a los humanos nos es
más cómodo trabajar en decimal. Trabajar con número binarios puede parecer “poco
intuitivo”. Vamos a ver cómo en determinadas ocasiones resulta muy intuitivo el trabajar con
números binarios.
Imaginemos que en una habitación hay 5 lámparas situadas en la misma línea, y que cada
una de ellas puede estar encendida o apagada. ¿Cómo podríamos representar el estado de
estas 5 lámparas mediante números? Una manera muy intuitiva sería utilizar el sistema
binario, en el que utilizaríamos el dígito 1 para indicar que la bombilla está encendida y el
dígito 0 para indicar que está apagada. Así el número 01011 nos indica que la primera
bombilla está apagada, la segunda encendida, la tercera apagada y las dos últimas
encendidas, como se muestra en la figura 1.y. Esta forma de representar el estado de las
lámparas es bastante intuitiva. Este es un ejemplo en el que se puede ver que “pensar” en
binario resulta más fácil que hacerlo directamente en decimal.
Página 4
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Figura 1.y: Utilización del sistema binario para expresar el estado de 5 bombillas
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Dónde: A16 equivale a 1010
B16 equivale a 1110
C16 equivale a 1210
D16 equivale a 1310
E16 equivale a 1410
F16 equivale a 1510.
0,1,2,3,4,5,6,7
Al igual que la base hexadecimal, en nuestro caso estos dos sistemas de numeración tienen
importancia y se utilizan por cuanto permiten compactar información binaria en forma
sencilla, pero en este caso, la compactación es menor. Mientras que en la base hexadecimal
con un sólo dígito se puede representar una cadena de 4 dígitos binarios, en la base octal
un dígito sólo puede representar 3 dígitos binarios. Los dígitos posibles para la base octal,
evidentemente, son los que van del 0 al 7.
En resumen, para aquellos sistemas de numeración donde la base es un múltiplo de 2n,
podemos decir que:
Paso de la base 2 a la base 2n: se agrupan los bits de n en n, de derecha a izquierda
Paso de la base 2n a la base 2: se expande cada digito por los n bits correspondientes
Página 5
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Cambio de Base
24 23 22 21 20
1 1 1 0 1 = 1.20 + 0.21 + 1.22 + 1.23 + 1.24
= 1 + 4 + 8 + 16 = 2910
Ejemplo: Convertir el número binario (1111100)2 a base 10
26 25 24 23 22 21 20
1 1 1 1 1 0 0 = 1.26 +1.25 + 1.24 + 1.23 + 1.22 + 0.21 + 0.20
= 64 + 32 + 16 + 8 + 4 = 12410
Dividiendo por b2
Página 6
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
N b1 = An b2n + An-1 b2n-1 + … + A1 b21 + A0 b20
b2 b2 b2 b2 b2
cociente resto
29 2
1 14 2
0 7 2
1 3 2
1 1 2
1 0
Ejemplo: Convertir el número decimal 4573 al sistema hexadecimal
4573 16
13 285 16
13 17 16
1 1
1036 8
4 129 8
1 16 8
0 2
a) Hexadecimal
0111 0000 0001 , 1100 0100 = (7 0 1 , C 4)16
b) Octal
011 100 000 001 , 110 001 000 = (3 4 0 1 , 6 1 0)8
Página 7
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplo: Convertir el número hexadecimal 39,B8 a decimal
Las operaciones aritméticas con números de base b ( b ≠ 10 ) siguen las mismas reglas que
los números decimales. Cuando se trabaja con una base distinta de 10 debe tenerse
especial cuidado en emplear solo símbolos admisibles para la base b.
Suma Binaria: la adición binaria se realiza de la misma forma que en el sistema decimal. El
digito menos significativo se opera primero y el más significativo ultimo. Existen cuatro casos
cuando se suman cifras binarias (bits) que se muestran en la tabla de verdad para dos
variables binarias a y b. Como se aprecia en la tabla, cuando las dos variables toman el
valor ‘1’ se produce un acarreo
b a Suma Bit de
0 0 0 acarreo
0 1 1
1 0 1
1 1 10
Ejemplo:
1 Acarreo
a 1 0 1
b 0 0 1
Resultado 1 1 0
Resta Binaria: Esta operación al igual que la suma sigue las mismas reglas de restar que el
sistema decimal, en la tabla siguiente vemos la operación de resta para dos dígitos binarios
Bit de
acarreo b a Resta
0 0 0
10 1 1
1 0 1
1 1 0
Ejemplo:
Página 8
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
1 Prestado
a 1 0 1
b 0 1 1
Resultado 0 1 0
Después de alinear cada posición del minuendo con el sustraendo, empezamos a restar
posición por posición, comenzando de 1 – 1 = 0 y 1 – 0 = 1
1010111
111101
010
0 10
1010111
111101
1010
En la quinta posición volvemos a tener otra resta 0 – 1, como no podemos tomar una unidad
de la sexta la tomamos de la séptima, en la sexta posición esta unidad es 10, si le tomamos
una unidad queda 1 en la sexta y uno en la quinta
10
0 1 0 10
1010111
111101
0011010
Multiplicación Binaria: El proceso es muy simple ya que las cifras seran ‘0’ o ‘1’, la tabla y
el ejemplo siguiente muestran la operación de multiplicar en base dos.
b a Multiplicación
0 0 0
0 1 0
1 0 0
1 1 1
Ejemplo:
1 0 0 1 910
1 0 1 1 1110
1 0 0 1
1 0 0 1
0 0 0 0
1 0 0 1
1 1 0 0 0 1 1 9910
Página 9
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
División Binaria: El proceso en este caso resulta mas simple que el sistema decimal
puesto que cuando se verifica cuantas veces el divisor “cabe en” el dividendo, solo hay dos
posibilidades ‘0’ o ‘1’.
Ejemplo:
1 0 0 1 1 1
0 0 0 1 1
1 0 0 Resultado
1 1
0 1 1
1 1
0 0 Resto
Ejemplo:
1 0 1 0 1 0 0
1 0 0 1 0, 1
0 0 1 0 0 Resultado
1 0 0
0 0 0 Resto
Obsérvese que en el segundo ejemplo se coloco la coma decimal y se agrego un cero para
poder continuar con la división
Complemento: Existen dos tipos de complemento para un sistema de base ‘b’, el
complemento radical o complemento a la base y el complemento radical disminuido o
complemento a la base menos uno.
Complemento radical disminuido, dado un número N en base b de n dígitos, el complemento
radical disminuido se define como
b n
1 N
Si b = 10 y n = 1 → b – 1 = 9
10 5
1 12389 99999 12389 87610
2 7
1 1011001 1111111 1011001 0100110
bn – N
bn – N = ( bn – 1) – N + 1
de esta forma vemos que podemos obtener el complemento a la base del numero 1238910
sumándole 1 a su complemento a 9
Página 10
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
87610c9 + 1 = 87611c10
0100110c1 + 1 = 0100111c2
En los ejemplos anteriores se supuso que el numero N era entero, si N tiene coma decimal
esta debe eliminarse en forma temporal para poder complementar, la coma se devuelve
después en la misma posición relativa
C’2 = bn – c2 = bn – ( bn – N ) = bn – bn + N = N
Resta con Complemento: La resta de dos números sin signo ( M – N ) puede realizarse de
la siguiente forma :
7253210 – 325010
M = 72532, N = 3250,
Acarreo
M =3250, N = 72532
R’ = - 69282 Resultado
Página 11
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplo: Dado los números M = 10101002 y N = 10000112, realice las operaciones M – N y
N – M utilizando el complemento a dos (base)
M–N N–M
10101002 M 10000112 N
+ 01111012 N’ + 01011002 M’
1 00100012 11011112
M–N N–M
10101002 M 10000112 N
+ 01111002 N’ + 01010112 M’
1 00100002 11011102
+ 12
00100012
Resultado = 00100012 Complentando y cambiando el
signo el resultado = - 00100012
Recuérdese que en este sistema a cada digito decimal se lo representa por un código
binario de cuatro bits: 1510 ( 0001 0101 )BCD
45 0 1 0 0 0 1 0 1 BCD
+33 0 0 1 1 0 0 1 1 BCD
78 0 1 1 1 1 0 0 0 BCD
b) Cuando el resultado de la suma es mayor a 9 (> 9)
6 0 1 1 0 BCD
+ 7 0 1 1 1 BCD
13 1 1 0 1 BCD código invalido para BCD
Siempre que esto ocurra la suma tiene que ser corregido por la adición de seis (0110) para
tomar en cuenta la omisión de los seis códigos no validos (1010, 1011, 1100, 1101, 1110 y
1111)
Página 12
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
6 0 1 1 0 BCD
+ 7 0 1 1 1 BCD
13 1 1 0 1 BCD código invalido para BCD
+ 0 1 1 0 BCD
0 0 0 1 0 0 1 1 BCD
1 3
Ejemplo:
47 0 1 0 0 0 1 1 1 BCD
+ 35 0 0 1 1 0 1 0 1 BCD
82 0 1 1 1 1 1 0 0 BCD invalido para BCD
1 0 1 1 0 BCD
1 0 0 0 0 0 1 0 BCD
8 2
Ejemplo: 1
59 0 1 0 1 1 0 0 1 BCD
+ 38 0 0 1 1 1 0 0 0 BCD
97 1 0 0 1 0 0 0 1 BCD invalido para BCD,
+ 0 1 1 0 BCD (Nótese que produce acarreo)
1 0 0 1 0 1 1 1 BCD
9 7
Resta: Al igual que la suma se debe salvar el error de los códigos inválidos cuando el
resultado es superior a 9, en este caso la corrección se realiza restando seis
7 0 1 1 1 BCD
- 6 0 1 1 0 BCD
1 0 0 0 1 BCD
45 0 1 0 0 0 1 0 1BCD
- 36 0 0 1 1 0 1 1 0BCD
9 0 0 0 0 1 1 1 1BCD invalido para BCD
- 0 1 1 0 BCD
0 0 0 0 1 0 0 1 BCD
0 9
Suma: El procedimiento es igual al decimal, debiéndose recordar que el digito mayor es ‘F’
en lugar de ‘9’
Página 13
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplos:
5 816 La suma de 8 + 4 produce 1210 que es C16
+ 2 416
7 C16
1 (acarreo)
5 816 Como B16 es 1110 ==> 816 + B16 = 810 + 1110 = 1910
+ 4 B16 y como 1910 = 1 * 161 + 9 * 160 = 1316
A 316
1 (acarreo)
3 A F16 Como (F + C)16 es (15 + 12)10 = 2710 = 1B16
+ 2 3 C16 Como (1+A+3)16 es (1+10+3)10 = 1410 = E16
5 E B16
Resta: Recuérdese que los números hexadecimales son una forma muy eficaz de
representar números binarios. Así, podemos restar números hexadecimales utilizando el
mismo procedimiento que se utiliza en los números binarios. El sustraendo se complementa
a 2 y luego se sumara al minuendo, cualquier sobrepasamiento se despreciara.
Podemos mencionar dos métodos para obtener el complemento a 2 de un número
hexadecimal:
El primer método es transformando el numero hexadecimal en binario, complementar y
luego volver a trasformar en hexadecimal
592
+C5A
11EC Resultado = 1 E C16
Se desprecia el acarreo
Página 14
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
REPRESENTACIÓN DE NÚMEROS CON SIGNO
0 1 1 0 0 1 = +25
Signo Magnitud
1 0 0 1 1 0 = -6
El bit de signo se usa para indicar si un número es positivo o negativo, el resto de los bits se
usa para representar la magnitud en forma binaria. Para los números negativos, no obstante
existen tres formas de representar la magnitud:
a) En forma de magnitud verdadera
b) En forma de complemento a 1
c) En forma de complemento a 2
d) Representación mediante exceso
Ejemplo:
= 1 0 0 0 1 1 0 Forma de complemento a 1
bit de signo
Ejemplo:
= 1 0 0 0 1 1 1 Forma de complemento a 2
bit de signo
Las tres formas de representación se utilizan en los sistemas digitales, algunos almacenan
la información en forma de magnitud verdadera y la transforman a forma de complemento
antes de realizar una operación aritmética.
Página 15
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
-3 1 0 0 1 1 1 1 1 0 1
Ejercicio: los siguientes números son números binarios en complemento a dos, determine el
valor decimal: a) 011002, b) 110102 y c) 100012
a) Como el signo es + la magnitud esta expresada en forma verdadera,
Entonces 011002 = +1210
b) Si complementamos la magnitud C2 = (10102)’ = 01102 y como el signo se conserva
Tendremos que 101102 = -610
Forma de representación con exceso: en este caso el número se forma sumando un valor al
número original. Para codificar un número con exceso se procede de la siguiente forma:
a) Al número decimal se le suma cierta cantidad o exceso, el exceso suele ser 2n-1 o
2 n-1 – 1 donde n es el número de bits
El acarreo se Bit de
desprecia signo
siempre
Página 16
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Caso 3: numero positivo y numero negativo mayor
- 9 1 0 1 1 12 en forma de complemento a 2
+4 0 0 1 0 02 en forma directa
- 5 1 1 0 1 12 en forma de complemento a 2
Bit de
signo
-9 1 0 1 1 1 en forma de complemento a 2
-4 1 1 1 0 0 en forma de complemento a 2
-13 1 1 0 0 1 1 en forma de complemento a 2
Bit de
El acarreo se signo
desprecia
siempre
Página 17
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
CÓDIGOS BINARIOS
Entre las formas de representar un número binario hemos visto el sistema binario natural y
el binario codificado decimal (BCD).
Recordemos que el código BCD no es otro sistema numérico como el binario, el octal o el
hexadecimal. En el sistema decimal con cada digito codificado en su equivalente binario.
La ventaja del código BCD es la relativa facilidad de conversión, esta facilidad es
especialmente importante desde el punto de vista del hardware y especialmente en aquellos
casos donde la salida debe mostrarse en forma de dígitos decimales como ser una
calculadora.
El código de Exceso 3
Se relaciona con el BCD y algunas veces utiliza en lugar de este debido a que posee
ventajas en ciertas operaciones aritméticas.
El código Exceso 3 se efectuad igual que el BCD excepto que antes de la codificación se le
suma 3 al digito decimal.
( 8 3 )10
1000 0011BCD
8 3
+3 +3
11 6
1011 0110 BCD EXCESO 3
En la siguiente tabla se muestran el código BCD y el exceso 3, nótese que si bien ambos
códigos utilizan 10 de los 16 posibles combinaciones
binarias, los códigos inválidos no son los mismos.
Mientras el BCD considera como inválidos los códigos Decimal BCD Exceso
1010, 1011,100,1101,1110,1111; En el exceso 3 los 0 0000 0011
códigos inválidos son 0000, 0001, 0010, 1101, 1110, 1 0001 0100
1111. 2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100
El código de GRAY
Pertenece a una clase de códigos llamado de cambio mínimo en los cuales solo cambia un
BIT cuando se pasa de una combinación otra.
Este código se utiliza generalmente en dispositivos de entrada y salida y especialmente en
aquellas situaciones donde se hace necesario efectuar controles sobre el sistema por su
facilidad de auto detección de errores.
Ejemplo: supongamos un sensor de temperatura como entrada a un sistema de control de
un horno, si en una variación de temperatura cambia mas de un bit podríamos estar en
Página 18
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
presencia de un error dado que la temperatura no puede soltar de 12ºc a 14ºc si o si debe
pasar por 13ºc.
Si entre el primer código y el último solo cambia un bit y además el código es consecutivo
decimos que el código es CICLICO.
Códigos Alfanuméricos
En general los sistemas digitales deben poder reconocer código que representen no solo
números sino también letras y caracteres especiales. Estos códigos son llamados código
ALFANUMERICOS.
Un conjunto completo de caracteres incluye:
26 letras minúsculas
26 letras mayúsculas
10 cifras numéricas
~25 caracteres especiales
87 caracteres diferentes
Para representar 87 caracteres diferentes se requerirán 7 bits ya que con 7 bits podemos
representar 27 = 128 combinaciones posibles.
El código alfanumérico mas conocido es código ASCII (Código Estándar Estadounidense
para el Intercambio de Información).
La tabla muestra en forma parcial este código
Página 19
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Códigos Detectores de errores
Uno de los métodos mas utilizados es el método de paridad. Este método consiste en
agregar un bit adicional al código.
El bit adicional será “0” o “1” dependiendo de la cantidad de unos que tenga el código.
El método de paridad puede controlar:
Paridad Par: en este caso el bit de paridad se escoge de manera tal que el numero total de
unos del código sea par.
Si la letra “A” según el código ASCII es (1000001 )2 y se agrega un bit de paridad par , el
nuevo código para la letra “A” será 0 1000001
Paridad Impar: al igual que la paridad par pero en este caso el bit de paridad se escoge de
manera tal que el numero total de unos del código sea impar.
Para el mismo caso de la letra “A” según el código ASCII es (1000001)2 y se agrega un bit
de paridad par , el nuevo código para la letra “A” será 1 1000001
Debe aclararse que este método no detecta el 100% de los errores ya que si dos bit con
condición de paridad o impuridad no se alteraría. Por ello el método se utiliza en aquellos
sistemas sonde la probabilidad de error es muy baja.
Hasta ahora hemos visto algoritmos aritméticos para realizar operaciones sobre
representaciones de números en coma fija. Todos ellos se pueden utilizar para las
representaciones en coma flotante a condición de tener en cuenta el escalado, es decir,
conocer la posición correcta del punto donde se localiza la separación entre la parte entera y
la parte decimal.
Pero en el computador, todo dato debe ser almacenado en un registro con un número finito
de bits. Y la pregunta es ¿cómo almacenamos los datos en coma flotante?.
La respuesta ha esta pregunta comienza preguntándonos primero si es necesaria la
notación en coma flotante en los computadores, y si se implementa ¿con que
características?.
La IEEE, en 1985 hizo oficial el Standard 754 del IEEE para punto flotante binario, basado
en el diseño inicial de Intel, pero algo simplificado.
Página 20
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Si lo queremos representar en un registro de n bits, utilizaremos p bits para la mantisa M y
q bits para el exponente E, además de un bit de signo s de la mantisa (del número en si).
Siendo B la base del exponente y cumpliéndose que: n = p+q+1
La base B está implícita y no es necesario representarla, pues es la misma siempre.
El nombre de Punto Flotante proviene de que al ajustar el exponente E se modifica la
posición del punto decimal en la mantisa M.
El diseñador de la aritmética debe conseguir un compromiso entre los tamaños de la
mantisa y los tamaños del exponente, ya que al tener un número fijo de bits totales, si se
toma un bit de un campo se pierde del otro y viceversa. Este compromiso se mueve entre la
precisión y el rango que deseemos del número en punto flotante, es decir incrementar el
tamaño de la mantisa enriquece el número de bits para representar la mantisa, mientras
que incrementar el tamaño del exponente incrementa el rango de números que pueden
representarse.
Para pasarlos a notación exponencial lo que hemos hecho es mover el punto decimal y
utilizar el exponente para registrar la posición original de dicho punto.
Exponente: Es un número de p bits que utiliza una representación exceso 2p-1 por las
razones que vamos a exponer.
a) El 0 se podría representar como M=0 y cualquier valor de exponente. Pero puede ocurrir
que al realizar operaciones aritméticas, a causa de los errores de redondeo, apareciera
algún 1 en posiciones menos significativas de la mantisa.
Esto sugiere que el exponente más adecuado para representar el 0 es aquel que tiene el
mayor valor negativo.
De esta forma, se logra que los errores de redondeo de la mantisa, den un número tan
próximo a cero como sea posible.
b) La representación del 0 es una secuencia de 0`s tanto en la mantisa como en el
exponente, de esta forma tenemos una única representación del cero.
Página 21
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Suma y Resta
Cuando sumamos o restamos dos números en Punto Flotante se deben comparar los
exponentes y hacerlos iguales, para lo cual hay que desplazar o alinear uno de ellos
respecto al otro. Dados dos números en representación en Punto Flotante como
x = mx 2xe y = my 2ye
Las operaciones de suma y resta se definen de la siguiente forma, suponiendo que xe < ye
Página 22
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
X+Y: X = 1,1 * 2100 Y = 1,01 * 2110
Las operaciones de suma y resta, así como la multiplicación y la división pueden producir
desbordamiento, por producir resultados demasiado grandes o demasiado pequeños
(subdesbordamientos). Hay cuatro tipos posibles:
1) Desbordamiento del exponente. Es cuando un exponente positivo E excede de su valor
máximo permitido. En algunos ordenadores el número X se representa entonces como + o -
.
2) Subdesbordamiento del exponente. Es cuando un exponente negativo E excede de su
valor máximo permitido. Esto significa que el numero X es demasiado pequeño y se puede
considerar como igual a 0.
3) Subdesbordamiento de mantisa. En el proceso de alineación de las mantisas, si los
dígitos se desplazan hacia la derecha más allá de su bit menos significativo, lo que sucede
es que se pierden y es como redondear el resultado.
4) Desbordamiento de mantisa. En la suma de dos mantisas del mismo signo se puede
producir un arrastre del bit más significativo. Esto se soluciona mediante la renormalización,
desplazando a la derecha un bit la mantisa y ajustando el exponente.
Algoritmo de la suma-resta.
Página 23
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Por lo visto con anterioridad, para realizar la suma (resta) de dos operandos en
representación Punto Flotante debemos realizar previamente la separación de los
exponentes y de las mantisas para su tratamiento posterior, y después realizar esta serie de
pasos:
1. Seleccionar el número con menor exponente y desplazar su mantisa a la derecha
tantas veces como indique la diferencia en módulo de los exponentes.
2. Hacer que el exponente resultado sea igual al mayor de los exponentes.
3. Realización de las operaciones de suma o resta con las mantisas.
4. Normalización del resultado. Una vez realizada la suma se debe normalizar
desplazando los bits de la mantisa hacia la izquierda o la derecha con lo cual habrá
que cambiar el valor del exponente.
5. Comprobar las condiciones de desborde.
Un diagrama de flujo del algoritmo se muestra en la figura siguiente. Se utilizan los mismos
registros que para el caso de la suma resta, y el resultado final que almacenado en los
registros A y E.
Página 24
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Multiplicación y división.
La multiplicación y la división en punto flotante son más sencillas de realizar. Vemos la
fórmula que nos permitirá realizar estas operaciones manualmente:
Página 25
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Aritmética en Punto Flotante en el computador
Las Unidades aritméticas en como flotante de los computadores se construyen utilizando
dos unidades aritméticas en como fija:
- Unidad de tratamiento de mantisas.
- Unidad de tratamiento de exponente.
Más una Unidad de Control que conectará ambas unidades y que se encarga entre otras
cosas de normalizar adecuadamente el resultado.
En todos los computadores se ha normalizado la notación en Punto Flotante al estándar
IEEE-754. Este estándar posee dos formatos posibles de representación o almacenamiento
de la información, aunque internamente puede utilizarse formatos con más bits para una
mayor precisión.
IEEE 754
El IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) ha creado un estándar para la
presentación de números en Punto Flotante. Este estándar especifica cómo deben
representarse los números en Punto Flotante con simple precisión (32 bits) o doble precisión
(64 bits), y también cómo deben realizarse las operaciones aritméticas con ellos.
Simple Precisión
El estándar IEEE-754 para la representación en simple precisión de números en Punto
Flotante exige una cadena de 32 bits. El primer bit es el bit de signo (S), los siguientes 8 son
los bits del exponente (E) y los restantes 23 son la mantisa (M):
Al estar el dato normalizado, es decir expresado siempre como “1,…” (“uno coma algo
más”), el 1 de la parte entera no se almacena, aunque nunca debemos olvidarnos que
existe.
El signo de la mantisa está representado en el bit 31.
El campo del exponente (ne) dispone de 8 bits, empezando por el bit 23 hasta el bit 30.
El campo de mantisa (nm) dispone de 23 bits, empezando por el bit 0 hasta el bit 22.
Considerando el valor 1 implícito (oculto) para el primer bit de los números binarios
normalizados la precisión del campo de la mantisa es de 24 bits.
El valor del desplazamiento es de 127, es decir el exceso C = 27 -1 = 127.
Estos tamaños de exponente y mantisa dan a la aritmética del computador un rango que
cubre fracciones tan pequeñas como 2.0 diez x 10 -38 y números tan grandes como 2.0 diez x
10 38.
Página 26
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
El valor V representado por esta cadena puede ser determinado como sigue:
Si E=255 y M es no nulo, entonces V=NaN ("Not a number")
Si E=255 y M es cero y S es 1, entonces V=-Infinito
Si E=255 y M es cero y S es 0, entonces V=Infinito
Si 0<E<255 entonces V=(-1)S * 2 (E-127) * (1.M) donde "1.M" se emplea para
representar el número binario creado por la anteposición a M de un 1 y un punto
binario.
Si E=0 y M es no nulo, entonces V=(-1)S * 2 (-126) * (0.M) Estos son valores "sin
normalizar".
Si E=0 y M es cero y S es 1, entonces V=-0
Si E=0 y M es cero y S es 0, entonces V=0
En particular,
0 00000000 00000000000000000000000 = 0
1 00000000 00000000000000000000000 = -0
Doble precisión
El estándar IEEE-754 para la representación en doble precisión de números en Punto
Flotante exige una cadena de 64 bits. El primer bit es el bit de signo (S), los siguientes 11
son los bits del exponente (E) y los restantes 52 son la mantisa (M):
Página 27
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
El valor V representado por esta cadena puede ser determinado como sigue:
Si E=2047 y M es no nulo, entonces V=NaN ("Not a number")
Si E=2047 y M es cero y S es 1, entonces V=-Infinito
Si E=2047 y M es cero y S es 0, entonces V=Infinito
Si 0<E<2047 entonces V=(-1)S * 2 (E-1023) * (1.M) donde "1.M" se emplea para
representar el número binario creado por la anteposición a M de un 1 y un punto
binario.
Si E=0 y M es no nulo, entonces V=(-1)S * 2 (-1022) * (0.M) Estos son valores "sin
normalizar".
Si E=0 y M es cero y S es 1, entonces V=-0
Si E=0 y M es cero y S es 0, entonces V=0
Precisión Extendida
Página 28
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Redondeo
Cuando tenemos un valor no representable, se aproxima a uno de estos 4 casos:
- Redondeo hacia el valor más próximo.
- Redondeo hacia +∞
- Redondeo hacia -∞
- Redondeo hacia 0.
Página 29
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Bit de guarda.
Cualquier operación aritmética se realiza sobre formatos ampliados. De esta forma ganamos
precisión en la realización de las operaciones aritméticas.
Veamos un ejemplo de la importancia de utilizar representaciones ampliadas, o bits de
guarda:
Página 30
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
En doble precisión:
17.25 = 10001.01 = 1.000101 * 2100
00000000100
Exp = + 01111111111
10000000011
Ejercicio: Hallar la representación del número decimal A= (-255)10 según el IEEE-754 S.P. y
después pasarlo a doble precisión.
Paso 3: A= A+M
A: 0,011
+ 1,01
1,101
Página 31
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
A Sobrepasa? NO
A = 0? NO
A Normalizado? SI
FIN:
X * Y = 0x44F00000
Comprobación:
X * Y = 24 * 80 = 1920 = (11110000000)2 = 1.111 * 21010
Exp + exceso = 00001010 + 01111111 = 10001001
Página 32
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Inicio Registros: E1 = 10000011 – exceso = 00000100 A = 1.01
E2 = 10000101 – eceso = 00000110 M = 1.1
Paso 1: E = E1-E2 = 110 - 100 = 010 pero es mejor hacerlo de esta forma:
E = E1-E2 = 00000110 - 00000100 = 00000010 (todo en C2)
E + exceso = 00000010 + 01111111 = 10000001
Paso 2: A=A/M
1.01 1.1
10 0 0.1101010101...
1 00
...
E Excede? NO
A = 0? NO
A Normalizado? NO
A = 1.10101010101010...
E = E – 1 = 10000000
FIN:
Y/X = 0x40555555
PROBLEMAS:
P1) ¿Qué número decimal es el A=0x4066C7E140000000?
Pasa el segundo número a Doble precisión y realiza todas las operaciones aritméticas
posibles sobre estos números, es decir: ¿X+Y, X-Y, Y-X, X*Y, X/Y, Y/X?, usando el
algoritmo expresado en el diagrama de bloques.
P7) Representar el número X = -56.320 en formato S.P. y D.P. según la norma IEEE-754.
Página 33
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
X = 271 e Y = 103
Página 34
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Bibliografía
Página 35