Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNAM
ENP#9 Pedro de Alba.
Grupo 406. Informática.
Quijada Romero René Nicolás.
El símbolo del sistema de Windows (después de haber abandonado MS-DOS como base para la
arquitectura del sistema) tiene una máxima precisión de 32 bits; esto no quiere decir que el número
máximo de números que se pueden introducir en la calculadora son 32, sino que el número máximo
representable es 2147483647, y cualquier número superior a este no puede ser calculado, es decir,
ni siquiera seleccionado. Si solicitáramos al sistema que sumara 2147483648 (la cantidad máxima
más 1) no es capaz de procesar la información y nos dará un resultado erróneo. La tesis anterior
será demostrada en las páginas siguientes.
Los motivos de esto se remontan a la aplicación del formato de coma flotante de precisión simple
en la computadora. Es un formato de ordenador que ocupa 32 bits en la memoria (tal como lo hace
el Símbolo del sistema). Este sistema tiene el nombre técnico de IEEE754, que procesa el número
que introducimos de acuerdo a las siguientes reglas:
Esto consigue una precisión de 6 a 9 dígitos decimales significativos. El sistema procesa los
números de acuerdo a este sistema de notación. Podemos considerarlo un “tipo de notación
científica” que funciona de la siguiente manera:
128/2= 64+0; 64/2=32+0; 32/2=16+0; 16/2=8+0; 8/2=4+0; 4/2=2+0; 2/2=0 con cociente 1.
Hay que tomar los residuos den sentido inverso y añadir al principio el último cociente
(que ya pertenecerá a la base a la cual queremos convertir) para obtener el número en sistema
binario:
00000001
100000002 = 12810
Tras obtener nuestro número en base binaria, deben comenzarse a llenar los huecos del
formato de coma flotante. El primer hueco (el signo) será 0 si nuestro número es positivo y
1 si es negativo.
Para llenar el siguiente hueco, debemos transformar nuestra cifra en base binaria a
notación científica binaria, esto es:
10000000= 1x27
10000000 = 1.0000000x27
Donde 7 es el número de cifras que debemos recorrer el punto para obtener nuestra cifra
(10000000) sin ser expresada en notación científica.
127 + 7 = 134
Ahora, llenaremos el hueco del exponente convirtiendo 134 a base binaria, lo cual es:
13410 = 100001102
0 10000110 Mantisa
1La suma de 127 en el campo de exponente, es para permitir exponentes negativos. Por ejemplo, si quisiéramos traducir
-0.0000000000000000000000000000000000003526483 a esta notación, su exponente sería -122. Y en la conversión, al
sumar 127, nuestro exponente sería 5, de esta forma, se permiten este tipo de exponentes.
Para calcular la mantisa de nuestro valor, debemos colocar los números que están
después del punto; para ejemplificar esto, usaremos el valor de *pi* en base 10.
π= 3.1416
31410x10-4= 3.1416
0 10000110 00000000000000000000000
Nótese que se subrayaron los primeros 7 ceros, esto es porque el valor en sistema binario
de la mantisa debe ser colocado al inicio y los espacios vacíos deben ser ocupados con ceros hasta
haber completado los 23 espacios disponibles.
128 = 01000011000000000000000000000000
32 bits contando el bit implícito.
La información anterior nos sirve como precedente al retomar que la computadora trabaja
con un máximo de precisión de 32 bits, es decir, con este sistema. Ahora ¿cuál es el máximo número
que podemos convertir a este sistema? Tal como se dijo al principio:
2147483647
Para comprobar esto, únicamente basta con pensar en el máximo valor que podemos
expresar en sistema binario de 32 bits sin necesidad de requerir de 33 bits, esto es:
1111111111111111111111111111111
(31 Unos, o 31 bits.)
Hay que recordar que existe un bit que se almacena implícitamente, es decir, en la
cantidad anterior tenemos en realidad 32 bits. Cuando añadimos un uno (bit) más, tenemos lo
siguiente:
10000000000000000000000000000000
(32 caracteres, o 32 bits)
Y si contamos el bit implícito, son 33 bits… ¡nos hemos salido del rango permitido por el
sistema! Rescatando lo anterior, nos surge la duda, si el máximo número en base binaria que
puedo expresar con 32 caracteres es 1111111111111111111111111111111 ¿cuál es su valor en
base decimal?
Donde:
11111111111111111111111111111112 = 214748364710
Sin lugar a dudas el proceso de deducción de éste número lleva a un camino largo a través de
muchos conceptos e investigación, así como el uso de matemáticas y conversión de bases, sin
embargo, ayuda a aclarar la duda importante de ¿cuál es el límite que tengo? Y nos surgen otras
más como ¿por qué la calculadora de Windows, o la de mi celular, si pueden realizar estas
operaciones?
Referencias:
Quora (2014) Why do we add 127 to the exponent in IEEE 754 floating number to get the actual
exponent value, recuperado desde: https://www.quora.com/Why-do-we-add-127-to-the-
exponent-in-IEEE-754-floating-number-format-to-get-the-actual-exponent-value (Consultado el 25
de febrero, 2017)