Odc-Tutorial Conversión de Decimal A Flotante IEEE754
Odc-Tutorial Conversión de Decimal A Flotante IEEE754
Odc-Tutorial Conversión de Decimal A Flotante IEEE754
simple
El formato IEEE754 se basa en las ideas de la notación científica. En base dos sería, por ejemplo:
- 1101001 x 2 -3
A partir de esto, se pueden identificar tres partes: signo, exponente y fracción. Es posible hacerle algunas
modificaciones a la notación científica para que quede de la siguiente forma:
(-1)BS x (1 + fracción) x 2 exponente - bias
Donde se resaltan las tres partes antes mencionadas. Los 32 bits disponibles se pueden dividir en estas
partes con la siguiente distribución:
Bit de Signo
Este bit establece el signo del número. Cuando es cero implica que el número positivo, en el caso en que
sea 1, es negativo.
Exponente
El exponente de un número puede ser tanto positivo como negativo. Por esto, en la estandarización se
decidió agregar un bias que me permite tener valores positivos y negativos sin dificultar aún más el
proceso de conversión y la lógica necesaria para comparar flotantes con enteros en la computadora. En
el caso de los flotantes de 32 bits, el bias es 127. En la siguiente tabla se muestran algunos ejemplos.
Es importante notar que se debe adaptar el exponente para que el valor no se modifique.
Ejemplo 1
Convertir de decimal a flotante IEEE 754 de 32 bits el número 263,3
Debido a la normalización, siempre el primer bit será un uno. Entonces, no es necesario almacenarlo. De
esta forma ganamos un bit más de precisión.
Ejemplo 2
Convertir el número obtenido en el punto anterior de flotante IEEE 754 de 32 bits a decimal.
3) Encontrar el exponente
Esto implica pasar a decimal la parte del exponente, y luego restarle el bias.
100001112 = 13510
135 - 127 = 8
4) Desnormalizar el número y pasar a decimal
Esto implica agregar el uno que se elimina al normalizar y luego desplazar la coma tantos lugares (y en
el sentido) como indique el exponente
Parte fraccionaria: 000001110100110011001102 => 1,00000111010011001100110 x 282
Desnormalización: 100000111,0100110011001102 = 263,299987793
Aclaración: Como puede verse, el número que se obtuvo al realizar el proceso de conversión y el inverso
es distinto al original. Esto se debe a que en los 23 bits de la parte fraccionaria se truncó luego de una
cierta cantidad de bits.
Ejemplo 3
Convertir de decimal a flotante IEEE 754 de 32 bits el número -0,00089210
10111010011010011101010100011011