VI powered Bienvenido a mis Tutorías © en la UNED
El estándar IEEE para la aritmética en coma flotante
UNED Asturias El IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) ha creado un estándar la presentaciónd de números en coma flotante. Este estándar especifica como deben representarse los números en coma flotante con simple precisión (32 bits) o doble precisión (64 bits), y también cómo deben realizarse las operaciones aritméticas con ellos.

Resumen:

Simple Precisión

El estándar IEEE-754 para la representación en simple precisión de números en coma flotante exige una cadena de 32 bits. El primer bit es el bit de signo (S), los siguientes 8 son los bits del exponente (E) y los restantes 23 son la mantisa (M):
  S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
  0 1      8 9                    31

El valor V representado por esta cadena puede ser determinado como sigue:

  • Si E=255 y M es no nulo, entonces V=NaN ("Not a number")
  • Si E=255 y M es cero y S es 1, entonces V=-Infinito
  • Si E=255 y M es cero y S es 0, entonces V=Infinito
  • Si 0<E<255 entonces V=(-1)**S * 2 ** (E-127) * (1.M)
    donde "1.M" se emplea para representar el número binario creado
    por la anteposición a M de un 1 y un punto binario.
  • Si E=0 y M es no nulo, entonces V=(-1)**S * 2 ** (-126) * (0.M)
    Estos son valores "sin normalizar".
  • Si E=0 y M es cero y S es 1, entonces V=-0
  • Si E=0 y M es cero y S es 0, entonces V=0

En particular,

  0 00000000 00000000000000000000000 = 0
  1 00000000 00000000000000000000000 = -0

  0 11111111 00000000000000000000000 = Infinito
  1 11111111 00000000000000000000000 = -Infinito

  0 11111111 00000100000000000000000 = NaN
  1 11111111 00100010001001010101010 = NaN

  0 10000000 00000000000000000000000 = +1 * 2**(128-127) * 1.0 = 2
  0 10000001 10100000000000000000000 = +1 * 2**(129-127) * 1.101 = 6.5
  1 10000001 10100000000000000000000 = -1 * 2**(129-127) * 1.101 = -6.5

  0 00000001 00000000000000000000000 = +1 * 2**(1-127) * 1.0 = 2**(-126)
  0 00000000 10000000000000000000000 = +1 * 2**(-126) * 0.1 = 2**(-127) 
  0 00000000 00000000000000000000001 = +1 * 2**(-126) * 
                                       0.00000000000000000000001 = 
                                       2**(-149)  (valor positivo más pequeño)

Doble precisión

El estándar IEEE-754 para la representación en doble precisión de números en coma flotante exige una cadena de 64 bits. El primer bit es el bit de signo (S), los siguientes 11 son los bits del exponente (E) y los restantes 52 son la mantisa (M):

  S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  0 1        11 12                                                63

El valor V representado por esta cadena puede ser determinado como sigue:

  • Si E=2047 y M es no nulo, entonces V=NaN ("Not a number")
  • Si E=2047 y M es cero y S es 1, entonces V=-Infinito
  • Si E=2047 y M es cero y S es 0, entonces V=Infinito
  • Si 0<E<2047 entonces V=(-1)**S * 2 ** (E-1023) * (1.M)
    donde "1.M" se emplea para representar el número binario creado
    por la anteposición a M de un 1 y un punto binario.
  • Si E=0 y M es no nulo, entonces V=(-1)**S * 2 ** (-1022) * (0.M)
    Estos son valores "sin normalizar".
  • Si E=0 y M es cero y S es 1, entonces V=-0
  • Si E=0 y M es cero y S es 0, entonces V=0

Bibliografía:

ANSI/IEEE Standard 754-1985,
Standard for Binary Floating Point Arithmetic

Última modificación: 28 de Octubre de 2009 - 20:44:34