Sei sulla pagina 1di 5

1

Máximo número representable.

Prueba de que el número máximo representable en un sistema de 32 bits (Windows) el número


máximo representable es 2147483647.

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:

 Bit de signo: 1 bit


 Exponente: 8 bits
 Dígitos significativos: 24 bits (23 almacenados explícitamente)

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:

 Se establece el número inicial, por ejemplo 128.


 Se convierte 128 a binario (puede convertirse a mano con el método de las divisiones
sucesivas).

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.

Quijada Romero. 406.


2
Máximo número representable.

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.

0 Exponente (8 bits) Mantisa (23 bits)

 Para llenar el siguiente hueco, debemos transformar nuestra cifra en base binaria a
notación científica binaria, esto es:

10000000= 1x27

Lo anterior queda demostrado, pues:

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.

 Sabiendo que 7 es el exponente de nuestra base, ahora debemos sumar 127 al


exponente1 para estar dentro del rango del sistema, lo cual es:

127 + 7 = 134

 Ahora, llenaremos el hueco del exponente convirtiendo 134 a base binaria, lo cual es:

13410 = 100001102

 Se procede a anotar en la tabla el valor del siguiente hueco:

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.

Quijada Romero. 406.


3
Máximo número representable.

 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

 Ya que 31410x10-4= 3.1416, la mantisa de la notación es 0.1416; aclarando lo anterior


podemos decir que la mantisa de 1.0000000x27 es la parte decimal de la cantidad, siendo
en este caso 0000000, y puesto que 0 en cualquier base es 0, no es necesario hacer
ninguna conversión, sin embargo, en caso de tener la mantisa, esta debe ser convertida al
sistema binario. Rellenamos el último hueco:

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.

Con el procedimiento anterior, sabemos que, en el sistema de IEEE coma flotante:

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?

Quijada Romero. 406.


4
Máximo número representable.

Convertimos la cantidad a decimal, recordando que al aumentar una cifra a la derecha


aumenta el valor posicional del número con la base (dos en este caso) elevada al exponente n,
donde n es el número de posición en la cifra menos uno.

Valor del numerando = bp-1

Donde:

b= base del sistema de posición.


p= posición del numeral.

Para agilizar el proceso, usamos un conversor de bases, dándonos como resultado:

11111111111111111111111111111112 = 214748364710

Demostrado lo anterior, podemos decir que:

El máximo número que puede ser representado en un sistema computacional con


arquitectura de 32 bits es 1111111111111111111111111111111 en base binaria o 2147483647
en base decimal, QED.

Lo anterior tiene implicaciones importantes en el desarrollo de, por ejemplo, una


calculadora desde el marco del símbolo del sistema (CMD), pues limita la cantidad de operaciones
que podemos realizar, así, podemos enunciar las siguientes reglas para las calculadoras en CMD:

a) Suma: No se puede obtener la suma de cantidades decimales cuyo resultado sea


superior a 2147483647.
b) Resta: Sólo pueden realizarse diferencias cuyo resultado sea menor a
2147483647.
c) Producto: No pueden realizarse productos cuyo resultado sea menor a
2147483647.
d) División: Pueden realizarse divisiones cuyo resultado sea menor a 2147483647 y
que no requieran puntos decimales, puesto que estos no son tomados como cifras
significativas.
e) Factorial: El factorial entero máximo realizable es 12! Pues el resultado es
479001600 y el siguiente, 13! Tiene como resultado 6227020800, cantidad
superior a 2147483647.
f) Potencia: Sólo pueden realizarse potencias cuyo resultado sea menor a
2147483647.
g) Media: No pueden realizarse medias con cifras mayores a 2147483647.

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?

Quijada Romero. 406.


5
Máximo número representable.

Referencias:

Wikipedia (2017) IEEE Coma flotante, recuperado desde:


https://es.wikipedia.org/wiki/IEEE_coma_flotante (Consultado el 25 de febrero, 2017)

Wikipedia (2017) 2147483647 (Number), recuperado desde:


https://en.wikipedia.org/wiki/2147483647_(number) (Consultado el 25 de febrero, 2017)

Schmidt (?) IEEE Converter (Conversor), recuperado desdehttps://www.h-


schmidt.net/FloatConverter/IEEE754.html (Consultado el 25 de febrero, 2017)

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)

Quijada Romero. 406.

Potrebbero piacerti anche