Home manjarrés

Formato IEEE754

número

IEEE754 precisión simple (32bits)

S
exponente
mantisa

IEEE754 precisión doble (32bits)

S
exponente
mantisa

Representación en coma flotante

Surge de la necesidad de representar números reales y enteros con un rango de representación mayor que el que nos ofrece la representación en punto fijo y posibilitar a la computadora el tratamiento de números muy grandes o muy pequeños. En su representación se utiliza la notación científica en la que una cantidad se representa de la forma:

            x = mantisa * baseexponente
            

En computación se utiliza el sistema binario por lo que la base será 2. Un número en esta notación tiene infinitas representaciones, de las que se toma como estándar la denominada normalizada que consiste en que la mantisa siempre tiene como parte entera un dígito significativo salvo en la representación del número 0. Así por ejemplo el número 1234.56 se representaría como 1.23456 * 103 . Ya hablando en binario, la parte entera de la mantisa siempre será 1, por lo que no se codificará y se supondrá su valor para realizar los cálculos. Otra forma de normalización puede ser suponer que la parte entera de la mantisa es siempre 0 y que el primer dígito de la parte decimal es siempre significativo. En ambos casos existe la excepción del número 0. En computación la forma de normalización más extendida es la primera que da lugar a la norma IEEE 754.

Debido a que la parte significativa está generalmente normalizada, el bit más significativo de la parte significativa siempre es 1, así que no se representa cuando se almacena sino que es asumido implícitamente.

Para poder realizar los cálculos ese bit implícito se hace explícito antes de operar con el número en coma flotante. Hay otros casos donde el bit más significativo no es un 1, como con la representación del número cero, o cuando el número es muy pequeño en magnitud y rebasa la capacidad del exponente, en cuyo caso los dígitos significativos se representan de una manera denormalizada para así no perder la precisión de un solo golpe sino progresivamente. En estos casos, el bit más significativo es 0 y el número va perdiendo precisión poco a poco (mientras que al realizar cálculos éste se haga más pequeño en magnitud) hasta que al final se convierte en 0.

Esta norma IEEE 754 fija dos formatos con signo explícito, representación del exponente en exceso a 2n-1 –1, normalizada con un 1 implícito y base 2.

Codificaciones con significado especial, en precisión simple:

Ejemplo

Codifiquemos el número decimal -118,625 usando el sistema de la IEEE 754. Necesitamos obtener el signo, el exponente y la mantisa. Dado que es un número negativo, el bit de signo es 1. Primero, escribimos el número (sin signo) usando notación binaria. El resultado es 1110110,101. Ahora, movemos la coma decimal a la izquierda, dejando sólo un 1 a su izquierda.

                1110110,101=1,110110101·26
            

Esto es un número en coma flotante normalizado.

La mantisa es la parte a la derecha de la coma decimal, rellenada con ceros a la derecha hasta que obtengamos todos los 23 bits. Es decir 11011010100000000000000. El exponente es 6, pero necesitamos convertirlo a binario y desplazarlo (de forma que el exponente más negativo es 0, y todos los exponentes son solamente números binarios base no negativos). Para el formato IEEE 754 de 32 bits, el desplazamiento es 127, así que 6 + 127 = 133. En binario, esto se escribe como 10000101.

Poniendo todo junto: