El estándar de IEEE del para la aritmética flotante binaria ( IEEE 754 ) es el estándar más ampliamente utilizado para el cómputo flotante, y es seguido por muchos CPU y las puestas en práctica FPU . El estándar define los formatos para representar números de coma flotante (negativa incluyendo cero y los números de Denormal y los valores especiales (infinitos y NaNs junto con un sistema de las operaciones de coma flotante del que funcionan encendido estos valores. También especifica cuatro modos de redondeo y cinco excepciones (incluyendo cuando ocurren las excepciones, y qué sucede cuando él ocurre).

IEEE 754 especifica cuatro formatos para representar valores flotantes: precisión de precisión doble (64-bit), solo-extendida de la solo-precisión (de 32 bits), (pedacito del ≥ 43, no de uso general) y precisión doble-extendida (pedacito del ≥ 79, ejecutado generalmente con 80 pedacitos). Solamente los valores de 32 bits son requeridos por el estándar; el otros son opcionales. Muchas idiomas especifican que los formatos y la aritmética de IEEE estén ejecutados, aunque sea a veces opcional. Por ejemplo, el lenguaje de programación C, que precedió IEEE 754, ahora permite pero no requiere la aritmética de IEEE (la C float se utiliza típicamente para la solo-precisión de IEEE y double utiliza IEEE de precisión doble).

El título completo del estándar es estándar de IEEE del para la aritmética flotante binaria (ANSI/IEEE Std 754-1985), y también se conoce como 60559:1989 del IEC del, aritmética flotante binaria para los sistemas del microprocesador (el número de referencia era original 559:1989 del IEC). Había más adelante un IEEE 854-1987 para el " " independiente de la coma flotante de la raíz; mientras la raíz sea 2 o 10.

Anatomía de un número de coma flotante

Lo que sigue es una descripción del formato estándar para los números de coma flotante.

Convenciones del pedacito usadas en este artículo

Los pedacitos dentro de una palabra de la anchura W son puestos en un índice por los números enteros en la gama 0 a W− 1 inclusivo. El pedacito con el índice 0 se dibuja a la derecha. El pedacito puesto en un índice más bajo es generalmente el lsb (menos pedacito significativo, el que si estuvo cambiado causaría la variación más pequeña del valor representado).

Disposición general

Los números de coma flotante binarios se almacenan en una forma de la muestra-magnitud donde está el pedacito el la mayoría del pedacito significativo de muestra, el exponente del son el exponente predispuesto " de, y del ; fraction" es el Significand menos el la mayoría del pedacito significativo .

El predisponer del exponente

El exponente es predispuesto por 2 el e −1−1. Ver también el exceso '' N '' . Se hace el predisponer porque los exponentes tienen que ser los valores firmados para poder representar valores minúsculos y enormes, pero el complemento, la representación generalmente dos para los valores firmados, haría la comparación más dura. Para solucionar esto el exponente es en polarización negativa antes de ser almacenado, ajustando su valor para ponerlo dentro de una gama sin firmar conveniente para la comparación.

Por ejemplo, representar un número que tenga exponente de 17, el exponente del es 17 + 2 el asumido e del e −1−1. = 8, el exponente es igual 17 + 128 al − 1 = 144.

Casos

El pedacito más significativo Significand (no almacenado) es determinado por el valor del exponente del . Si el < 2^ {e} - 1 del exponente del de 0 <, el pedacito más significativo del significand del es 1, y el número reputa normalizado . Si el exponente del es 0, el pedacito más significativo del significand del es 0 y el número reputa el de-normalizado. Tres casos especiales se presentan: si el exponente del es 0 y la fracción del es 0, el número es (dependiendo del pedacito de muestra) el

  • ±0 si el exponente del = 2^ {e} - 1 y la fracción del es 0, el número es el infinito del ± (otra vez dependiendo del pedacito de muestra), y
  • si el exponente del = 2^ {e} - 1 y la fracción del no es 0, el número que es representado es no un número (NaN) .

    Esto se puede resumir como:

    pedacito de la Solo-precisión 32

    Un número de coma flotante binario de la solo-precisión se almacena en 32 pedacitos

    El exponente es predispuesto por 2^ {8-1} - 1 = 127 en este caso (los exponentes en el &minus de la gama; 126 a +127 son representables. Ver la explicación antedicha para entender porqué se hace el predisponer). Un exponente del − 127 serían predispuestos al valor 0 pero éste se reserva para codificar que el valor es un número o un cero denormalized. Un exponente de 128 sería predispuesto al valor 255 pero éste se reserva para codificar un infinito o no un número (NaN).

    Para los números normalizados, el más común, exponente del es el exponente en polarización negativa y la fracción del es el Significand menos el pedacito más significativo.

    El número tiene valor v:

    v = × de s; × 2e; m

    Donde

    s = +1 (números positivos) cuando el pedacito de muestra es 0

    s = − 1 (números negativos) cuando el pedacito de muestra es 1

    e = &minus del Exp; 127 (es decir el exponente se almacena con 127 agregados a él, también llamado " predispuesto con 127")

    m = 1.fraction en binario (es decir, el significand es el número binario 1 seguido por la coma de la base seguida por los pedacitos binarios de la fracción). Por lo tanto, 1 ≤ m < 2.

    En el ejemplo demostrado arriba, la muestra es cero, el exponente es − 3, y el significand es 1.01 (en el binario, que es 1. El número representado es por lo tanto +1.25 × 2− 3, que es +0.

    Notas: Los números de Denormalized son los mismos salvo que e = − 126 y m es 0. (e no es − 127: La fracción tiene que ser cambiada de puesto a la derecha por un más pedacito, para incluir el pedacito principal, que no es siempre 1 en este caso. Esto es balanceada incrementando el exponente al − 126 para el

  • del cálculo.) − 126 es el exponente más pequeño para un
  • normalizado del número Hay dos ceros, +0 (s es 0) y − 0 (s es 1)
  • Hay dos infinitos +∞ (s es 0) y − ∞ (s es 1)
  • NaNs puede tener una muestra y una fracción, pero éstos no tienen ningún significado con excepción para de diagnósticos; el primer pedacito de la fracción es de uso frecuente distinguir la señalización NaNs
  • de NaNs de la tranquilidad del NaNs y los infinitos tienen todo el 1s en el campo del Exp.
  • Los números positivos y negativos más cercanos a cero (representado por el valor denormalized con todo el 0s en el campo del Exp y el valor binario 1 en el campo de la fracción) son
  • : ±2− 149 ≈ ±1.4012985
  • Los números normalizados positivos y negativos más cercanos a cero (representado con el valor binario 1 en el campo del Exp y 0 en el campo de la fracción) son
  • : ±2− 126 ≈ ±1.175494351
  • Los números negativos positivos y finitos finitos más lejos a partir de la cero (representado por el valor con 254 en el campo del Exp y todo el 1s en el campo de la fracción) son
  • : ≈ 2128) ±3.4028235 del ± ((1 (el 1/2) 24)

    Aquí está la tabla sumaria de la sección anterior con algunos ejemplos de 32 bits de la solo-precisión del ejemplo:

    Un ejemplo más complejo

    Codifiquemos el &minus del número decimal; 118.625 usar el sistema de IEEE 754.

    primero que necesitamos conseguir la muestra, el exponente y la fracción. Porque es un número negativo, la muestra es " 1".

  • Ahora, escribimos el número (sin la muestra; es decir sin firmar, ningún complemento de dos) usar la notación binaria . El resultado es 1110110. Conseguimos los 101 después del decimal como esto: 0.25 que los medios escribimos 1 después de decimal y nos movemos en
  • 0.5 que los medios escribimos 0 después del decimal y nos movemos en
  • 0.00 que los medios escribimos 1 después de que acaben el decimal y nos también puesto que no hacemos ningún residuo dejar para trabajar con el
  • de Después, movamos la coma de la base a la izquierda, dejando solamente un 1 en su izquierda: 1110110.110110101 × 26. Esto es un número normalizado de la coma flotante. Se cae el primer 1 dígito binario. La fracción es la pieza en la derecha de la coma de la base, llenada de 0 a la derecha hasta que consigamos los 23 pedacitos. el
  • 11011010100000000000000 El exponente es 6, pero necesitamos convertir lo al binario y al diagonal él (así que el exponente más negativo es 0, y todos los exponentes son números binarios no negativos). Para el formato de 32 bits de IEEE 754, el diagonal es 127 y tan 6 + 127 = 133. En binario, esto se escribe como 10000101.

    ¡

    ¡Pedacito de precisión doble 64 algoritmos para la variación calculadora -->

    El de precisión doble es esencialmente igual salvo que los campos son más anchos:

    La pieza de fracción es mucho más grande, mientras que el exponente es solamente levemente más grande. Los creador estándar creyeron que la precisión es más importante que gama.

    NaNs y los infinitos se representan con el Exp que es todo el 1s (2047). Si la pieza de fracción es el cero entonces es infinito, otro él es NaN.

    Para los números normalizados el diagonal del exponente es +1023 (así que e es el exponente (− 1023)). Para los números de Denormalized el exponente está (− 1022) (el exponente mínimo para un number&mdash normalizado; no es (− 1023) porque los números normalizados tienen un 1 dígito principal antes del punto binario y no lo hacen los números denormalized). Como antes, se firman el infinito y cero.

    Notas: Los números positivos y negativos más cercanos a cero (representado por el valor denormalized con todo el 0s en el campo del Exp y el valor binario 1 en el campo de la fracción) son

  • : ±2− 1074 ≈ ±5
  • Los números normalizados positivos y negativos más cercanos a cero (representado con el valor binario 1 en el campo del Exp y 0 en el campo de la fracción) son
  • : ±2− 1022 ≈ ±2.2250738585072020
  • Los números negativos positivos y finitos finitos más lejos a partir de la cero (representado por el valor con 2046 en el campo del Exp y todo el 1s en el campo de la fracción) son
  • : ± ((1 (el 1/2) 53) 21024)

    Funciones y predicados recomendados

    Debajo de algunos compiladores C, copysign (x, y) vuelve x con la muestra de y, así que el ABS (x) iguala el copysign (x, 1. Éste es una de las pocas operaciones que funciona encendido un NaN en una aritmética que se asemeja de la manera. El copysign de la función es nuevo en el estándar C99.
    − las vueltas x x con la muestra invirtieron. Esto es diferente de 0− x en algunos casos, notablemente cuando x es 0. Tan − (0) es el − 0, pero la muestra de 0− 0 depende del modo de redondeo.
    scalb (y, N)
    logb (x)
    finito (x) un predicado para el " x es un value" finito;, equivalente al − Inf < x < Inf
    isnan (x) un predicado para el " x es un nan", equivalente al " x" del ≠ x;
    x <> y que resulta tener diverso comportamiento de la excepción que NO (x = y).
    desordenado (x, y) es verdad cuando " x es desordenado con el y", es decir, x o y es un NaN.
    clase (x)
    nextafter (x, y) vuelve el valor representable siguiente de x en la dirección hacia y
  • .

  • Zenithic
  • IEEE 754-1985
    Random links:Driftwood | Warhammer 40.000 | Jerónimo Lorenzo | Sala de Fred | George Williams

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">