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.
Lo que sigue es una descripción del formato estándar para los números de coma flotante.
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).
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 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.
El pedacito más significativo Significand (no almacenado) es determinado por el valor del exponente del . Si el del exponente del de , 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
Esto se puede resumir como:
Un número de coma flotante binario de la solo-precisión se almacena en 32 pedacitos
El exponente es predispuesto por 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
Aquí está la tabla sumaria de la sección anterior con algunos ejemplos de 32 bits de la solo-precisión del ejemplo:
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".
¡
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
.
| Random links: | Driftwood | Warhammer 40.000 | Jerónimo Lorenzo | Sala de Fred | George Williams |