Académique Documents
Professionnel Documents
Culture Documents
Aritmética de la computadora
1.4 Aritmética de la computadora
El usuario se comunica con la computadora en sistema decimal, es
decir, introduce en ella y extrae de ella números en base decimal.
Al recibir los datos, para poder trabajar con ellos, la computadora
los convierte al sistema binario, su lenguaje natural de operación.
Todas las operaciones se efectúan en binario y los resultados
obtenidos, antes de ser entregados al usuario, la máquina 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 cálculos se
suscitan pequeños errores que, si no se prevén, pueden propagarse
y arrojar resultados muy inexactos o totalmente absurdos. Por eso
es tan importante el entender la aritmética de las computadoras e
identificar las situaciones en que pueden ocurrir errores severos.
1.4 Aritmética de la computadora
La operación interna de una computadora se basa en la aritmética
binaria, en la que la base es el 2 y sólo hay dos símbolos: 0 y 1,
pues la memoria de la máquina consiste en un vasto número de
dispositivos de registro magnético y electrónico, cada uno de los
cuales sólo 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
magnético es un dígito 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 tamaños de palabra más usuales
son los de 16 o de 32 bits). También 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 números
enteros y los números fraccionarios, varía en función del diseño de
la computadora
1.4.1 Los números enteros en computadora
Los números enteros requieren de al menos una palabra para almacenarse dentro de
la memoria de la computadora; si el tamaño 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 números 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 números 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 número -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 números 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é número 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 fácil darse cuenta que el manejo de números enteros en computadora no tiene el más mínimo
problema, siempre que los números introducidos o los resultados del procesamiento no
sobrepasen el rango establecido.
1.4.2 Los números reales en computadora
Las computadoras también manejan los números reales en sistema binario, pero no pueden
hacerlo de manera exacta, porque el número de dígitos está limitado por el tamaño de palabra de
cada máquina. La memoria de la computadora impone así una restricción a la precisión y
exactitud de los números reales, pues al registrarlos, necesariamente son redondeados,
cometiendo con ello pequeños errores. Claro que esta limitación no es privativa de la
computadoras; en los cálculos a mano o usando cualquier tipo de calculadora, también tenemos
que hacer redondeos.
La forma de registrar un número real en una computadora digital depende del diseño 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 notación de punto flotante normalizado.
Cualquier número real decimal X puede ser expresado en notación científica normalizada; ésta
consiste en expresar el número como una potencia de 10, asignándole el exponente n que resulte
de desplazar el punto decimal las posiciones necesarias para que todos los dígitos significativos
del número en cuestión 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 número menor que 1 y mayor o igual que 0.1: 0.1 ≤ F < 1
y n es un entero positivo, negativo o cero: n∈Z
±0.1mmmmmmmmmmmmmmmmmmmmmmm x 2 ±eeeeeee
m = 0, 1 ; e = 0, 1
1.4.2 Los números 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 número 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 números 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 sería el 127 y el menor exponente
negativo posible sería 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 números negativos, la polaridad se invierte: los ceros se cambian por unos y los unos
por ceros y se le añade un 1 al resultado, de manera que su registro se hace así:
111111112 = -110 ... 100000012 = -12710
1.4.2 Los números 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 números 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; ¿cuál sería el
resultado de sumar mil veces el número fraccionario 1/100? ¿cuál sería el error
absoluto? Y ¿cuál 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 números 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 números reales en computadora
= 0.6220703125 x 16 = 9.95312510