Está en la página 1de 2

El estándar IEEE754

En un programa de ordenador las instrucciones aritméticas que utilizan cálculos en punto flotante pueden
ejecutarse de dos formas:

Mediante emulación por software a cargo del traductor del lenguaje de programación que se utilice para la
obtención del código objeto. Esto ocurre cuando a la hora de traducir el código se indica, en la
configuración del lenguaje, que no se desea utilizar las unidades de coma flotante FPU (floating point units,
unas unidades de cálculo de los microprocesadores; se verán en la siguiente unidad).

Mediante la ejecución directa de las instrucciones de punto flotante por el hardware del ordenador al
compilar se indica que se desea utilizar las FPU. Para ello hace falta que la CPU contenga los circuitos
específicos, ya sea en el mismo procesador (típico en los procesadores actuales), o en un circuito
coprocesador independiente (por ejemplo la unidad 80387 para el procesador 80386)

Tanto si se hace por software como si se hace por hardware el tratamiento de estos datos, los intercambios de
los mismos serían muy difíciles si cada fabricante utiliza un formato distinto. Para evitar estos problemas el
IEEE (Institute of Electric and Electronic Engineers) propuso el formato IEEE754, estándar que ha sido
ampliamente adoptado y se utiliza prácticamente en todos los procesadores y coprocesadores aritméticos
actuales.

El formato IEEE754 utiliza notación exponencial en la forma Número = Mantisa * BaseExponente, con la base
binaria implícita. Al igual que el caso anterior se reserva un bit para el signo. El exponente se codifica en
representación sesgada o en exceso como en el formato anterior, el sesgo viene dado por la expresión: 2m-1-1.
Donde m es el número de bits reservados para el exponente. Así pues el valor guardado en el exponente será
el exponente más el sesgo.

La mantisa se almacena generalmente en posición normalizada con el primer 1 implícito, es decir la coma
fraccionaria va a la derecha de este 1. Para una palabra de n=32 bits, y m=8 de exponente, el tamaño de la
mantisa será n-m-1=32-8-1=23 bits más 1 implícito.

Caso práctico 1
Representación de un número decimal positivo en el estándar IEEE754
Representación de 17,5(10 en el estándar IEEE754, considerando palabras de n=32 bits y exponente de 8 bits.

1. Calculamos la mantisa en notación normalizada, en esta división como la norma dice que hay un 1 en el
primer dígito a la izquierda de la coma, en lugar de dividir el número por la base elevada al número de
dígitos necesarios para representar el número, que da 0, dividimos por el número de dígitos necesarios -1,
es decir:

Si se desea representar el 9, en binario es 1001, necesito 4 bits, pues para que quede 1 en lugar de 0 como
en el caso de simple precisión, dividimos por 23 y no 24:

9/24 =>0,5625 notación válida para simple precisión.

9/23 => 1,125 notación válida para la representación en el estándar IEEE754.

1
Así pues en nuestro caso dividimos 17,5/24 => 1,09375. El número en notación normalizada queda:
1,09375 x 24

2. Pasamos a binario la mantisa: 1,09375 => 1,00011, recuerda que luego en la representación el 1 va
implícito, no se almacenará, solo se almacenará 00011.

3. Calculamos el exponente en representación sesgada, el número de bits es m=8. El sesgo o exceso=28-1-1


=>128 – 1 => 127.

El exponente más el sesgo da: 4 + 127 => 131, en binario => 10000011

4. Finalmente la representación quedará así:

00011000000000000000
0 10000011
000
Exponente (8
Signo Mantisa (23 bits)
bits)

Caso práctico 2
Representación de un número decimal negativo en el estándar IEEE754
Representación de -7,25(10 en el estándar IEEE754, considerando palabras de n=32 bits y exponente de m = 8
bits.

1. Calculamos la mantisa en notación normalizada con un 1 a la izquierda de la coma.

El 7 (111) necesita 3 bits, dividimos por 22 => 7,25 / 22 => 1,8125 => 1,8125 x 22 .

2. Pasamos a binario la mantisa: 1,8125 => 1,1101

3. El exponente más el sesgo da: 2 + 127 => 129, en binario => 10000001

4. Como es negativo el número lo representamos en C a 1 con lo que la representación quedará así:

0010111111111111111111
1 10000001
1
Signo Exp (8 bits) Mantisa (23 bits)

También podría gustarte