1 votos

Calcular el mayor valor posible en coma flotante: ¿fórmula?

Si tengo una representación de 32 bits de una coma flotante en la que 1 bit es el signo, 8 bits son el exponente y 23 bits forman la mantisa. La notación del exponente es Exceso-127.

32=1+8+23

Y, donde el "1." de la mantisa está implícito y no se almacena en la secuencia binaria.

Para mí tiene sentido calcular el mayor punto flotante positivo posible utilizando esta fórmula:

(implicit "1." value) + (largest possible bit sequence) × (largest possible exponent)

... que en este caso es:

(1) + ( { 2^(23) - 1 } x {2^128} )

El libro de texto del que estoy estudiando utiliza esta fórmula:

+ { 1 - 2^(-24) } x 2^(128)

La única parte; en esta fórmula; que tiene sentido para mí, es 2^(128) . No entiendo por qué están usando 2^(-24) . No entiendo por qué restan 2^(-24) de la 1 o bien.

¿Es correcta la fórmula? Y si es así, ¿cómo funciona? Si alguien puede indicarme recursos que expliquen esto, se lo agradecería mucho.

-1voto

PMar Puntos 11

Su fórmula está ligeramente desviada. Tu expresión (2^23)-1 representa los 'todos los 1s' de la mantisa máxima - pero has olvidado que esto es una fracción . Para que sea una fracción debes escalar por un factor de 2^-23 antes de añadir 1. Si calculas las matemáticas, verás que entonces será equivalente a la fórmula del libro de texto.

También creo que tanto tú como el libro de texto estáis equivocados con el exponente - debería ser como máximo 2^127 (asumiendo que el valor de 8 bits tiene signo de complemento de dos, que tiene el rango de valores [-128..127]) .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X