Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aritmtica de la computadora
Gustavo Rocha
2005-2
1.4 Aritmtica de la computadora
El usuario se comunica con la computadora en sistema decimal, es
decir, introduce en ella y extrae de ella nmeros en base decimal.
Al recibir los datos, para poder trabajar con ellos, la computadora
los convierte al sistema binario, su lenguaje natural de operacin.
Todas las operaciones se efectan en binario y los resultados
obtenidos, antes de ser entregados al usuario, la mquina los
convierte al sistema decimal. Claro est que la computadora realiza
estos procesos a enormes velocidades, de manera que el usuario ni
se entera de lo que sucede ah dentro.
Sin embargo, al efectuar las conversiones y realizar los clculos se
suscitan pequeos errores que, si no se prevn, pueden propagarse
y arrojar resultados muy inexactos o totalmente absurdos. Por eso
es tan importante el entender la aritmtica de las computadoras e
identificar las situaciones en que pueden ocurrir errores severos.
1.4 Aritmtica de la computadora
La operacin interna de una computadora se basa en la aritmtica
binaria, en la que la base es el 2 y slo hay dos smbolos: 0 y 1,
pues la memoria de la mquina consiste en un vasto nmero de
dispositivos de registro magntico y electrnico, cada uno de los
cuales slo puede presentar uno de dos posibles estados:
magnetizado en un sentido, representando al cero, o magnetizado
en el otro sentido, representando al uno. Cada dispositivo
magntico es un dgito binario, denominado bit (abreviatura de
"binary digit").
Los bits se agrupan en unidades llamadas palabras, las cuales
pueden contener 8, 16, 32 o 64 bits, dependiendo de la
computadora de que se trate (los tamaos de palabra ms usuales
son los de 16 o de 32 bits). Tambin se utilizan otras unidades
denominadas bytes, constituidos generalmente por 8 bits, y
utilizados como particiones de palabras, para representar
caracteres. As, por ejemplo, una palabra de 32 bits consta de 4
bytes.
La manera en que se usan los bits para registrar los nmeros
enteros y los nmeros fraccionarios, vara en funcin del diseo de
la computadora
1.4.1 Los nmeros enteros en computadora
Los nmeros enteros requieren de al menos una palabra para almacenarse dentro de
la memoria de la computadora; si el tamao de palabra de la computadora es de 2
bytes (16 bits), el primer bit registra el signo: positivo si es 0, negativo si es 1, y los 15
bits restantes se usan para registrar nmeros enteros binarios en el rango de
000000000000000 a 111111111111111.
n1 n2 n3 n4 n5 n6 n7 n8 n9 n1 n11 n1 n1 n1 n1
0 2 3 4 5
0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1
(+)
1.4.1 Los nmeros enteros en computadora
0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0
(+)
210 + 29 + 27 + 26 + 25 + 24 + 23 + 21 = 178610
Ejemplo: Representar el nmero -284910 en sistema binario, en una palabra de 16 bits, usando
complemento a dos.
2849 1
1424 0
712 0
356 0
178 0
89 1 284910 = 1011001000012 -284910 = -1011001000012
44 0
22 0
11 1
5 1
2 0
1 1
0
1.4.1 Los nmeros enteros en computadora
Complementamos el valor a 15 caracteres: 0001011001000012
Cambiamos la polaridad: 1110100110111102
Le sumamos 1: 1110100110111112
1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1
(-)
Ejemplo: Identificar qu nmero entero decimal est representado en la siguiente palabra de 16
bits, usando complemento a dos.
1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1
(-)
El valor sin signo en 15 caracteres es: 1110110010100112
Le restamos 1: 1110110010100102
Cambiamos la polaridad: 0001001101011012
- (211 + 28 + 27 + 25 + 23 + 22 + 20) = -247710
Es fcil darse cuenta que el manejo de nmeros enteros en computadora no tiene el ms mnimo
problema, siempre que los nmeros introducidos o los resultados del procesamiento no
sobrepasen el rango establecido.
1.4.2 Los nmeros reales en computadora
Las computadoras tambin manejan los nmeros reales en sistema binario, pero no pueden
hacerlo de manera exacta, porque el nmero de dgitos est limitado por el tamao de palabra de
cada mquina. La memoria de la computadora impone as una restriccin a la precisin y
exactitud de los nmeros reales, pues al registrarlos, necesariamente son redondeados,
cometiendo con ello pequeos errores. Claro que esta limitacin no es privativa de la
computadoras; en los clculos a mano o usando cualquier tipo de calculadora, tambin tenemos
que hacer redondeos.
La forma de registrar un nmero real en una computadora digital depende del diseo del
hardware y del software; sin embargo, el formato es del mismo tipo en todos los casos y se
basa en el principio de utilizar la notacin de punto flotante normalizado.
Cualquier nmero real decimal X puede ser expresado en notacin cientfica normalizada; sta
consiste en expresar el nmero como una potencia de 10, asignndole el exponente n que resulte
de desplazar el punto decimal las posiciones necesarias para que todos los dgitos significativos
del nmero en cuestin queden inmediatamente a la derecha del punto, garantizando que el
primero de ellos sea diferente de cero:
X = F x 10n
donde F es un nmero menor que 1 y mayor o igual que 0.1: 0.1 F < 1
y n es un entero positivo, negativo o cero: nZ
0.1mmmmmmmmmmmmmmmmmmmmmmm x 2 eeeeeee
m = 0, 1 ; e = 0, 1
1.4.2 Los nmeros reales en computadora
En virtud de que la mantisa siempre empieza con 1, no hay necesidad de almacenar ste 1, de
manera que los 23 bits reservados para la mantisa son para guardar desde el segundo hasta el
veinticuatroavo caracter del nmero binario en punto flotante.
e e e e e e e m m m m m m m m m m m m m m m m m m m m m m m
Los 7 bits destinados al exponente se usan para registrar nmeros enteros binarios en el rango
de 0000000 a 1111111. Su signo se controla por separado (distinguido en rojo).
Conforme a esto, el mayor exponente positivo posible sera el 127 y el menor exponente
negativo posible sera el -127; pero usando el complemento a dos, su rango se incrementa en
1, para que sea -128.
Los exponentes positivos se registran as:
000000012 = 110 ... 011111112 = 12710
Para los nmeros negativos, la polaridad se invierte: los ceros se cambian por unos y los unos
por ceros y se le aade un 1 al resultado, de manera que su registro se hace as:
111111112 = -110 ... 100000012 = -12710
1.4.2 Los nmeros reales en computadora
0.3125 100 0
0.6250 0 50 0
0.2500 1 25 1
0.5000 0 12 0
0.0000 1 6 0
3 1
1 1
0
0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(+) (+)
1.2.1 Los nmeros reales en computadora
1 1 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0
(-) (-)
Ejemplo: Suponga que una computadora maneja palabras de 16 bits; cul sera el
resultado de sumar mil veces el nmero fraccionario 1/100? cul sera el error
absoluto? Y cul el relativo?. Considere que la computadora recibe las cifras en
sistema decimal, las convierte a binario, hace las operaciones en binario y el resultado lo
traduce a decimal. Considere los dos bits para los signos, cinco bits para el exponente y
nueve espacios para la mantisa.
1.4.2 Los nmeros reales en computadora
1/100 = 0.0110 = 0.00000010100011112 = 0.10100011112 x 2-110
0.01
0.02 0
0.04 0 1000 0
0.08 0 500 0 100010 = 11111010002
0.16 0 250 0
0.32 0 125 1
0.64 0
62 0
0.28 1
31 1
0.56 0
15 1
0.12 1
0.24 0
7 1
0.48 0
3 1
0.96 0 1 1
0.92 1 0
0.84 1
0.68 1
0.36 1 1000 x 1/100 = 11111010002 x 0.10100011112 x 2-110
1.4.2 Los nmeros reales en computadora
= 0.6220703125 x 16 = 9.95312510