Números de coma flotante estándar IEEE 754

El estándar IEEE para aritmética de punto flotante (IEEE 754) es un estándar técnico para el cálculo de punto flotante que fue establecido en 1985 por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) . El estándar abordó muchos problemas encontrados en las diversas implementaciones de coma flotante que dificultaban su uso confiable y reducían su portabilidad. El punto flotante estándar IEEE 754 es la representación más común hoy en día para números reales en computadoras, incluidas las PC basadas en Intel, Mac y la mayoría de las plataformas Unix.

Hay varias formas de representar el número de coma flotante, pero IEEE 754 es la más eficiente en la mayoría de los casos. IEEE 754 tiene 3 componentes básicos:

  1. El Signo de Mantissa –
    Esto es tan simple como el nombre. 0 representa un número positivo mientras que 1 representa un número negativo.
  2. El exponente sesgado:
    el campo de exponentes debe representar exponentes tanto positivos como negativos. Se agrega un sesgo al exponente real para obtener el exponente almacenado.
  3. La mantisa normalizada:
    la mantisa es parte de un número en notación científica o un número de punto flotante, que consta de sus dígitos significativos. Aquí tenemos solo 2 dígitos, es decir, O y 1. Entonces, una mantisa normalizada es una con solo un 1 a la izquierda del decimal.

Los números IEEE 754 se dividen en dos según los tres componentes anteriores: precisión simple y precisión doble.

TIPOS SEÑAL EXPONENTE SESGADO MANTISA NORMALIZADA PARCIALIDAD
Precisión simple 1 (bit 31) 8(30-23) 23(22-0) 127
Precisión doble 1 (bit 63) 11(62-52) 52(51-0) 1023

Ejemplo –

85.125
85 = 1010101
0.125 = 001
85.125 = 1010101.001
       =1.010101001 x 2^6 
sign = 0 

1. Single precision:
biased exponent 127+6=133
133 = 10000101
Normalised mantisa = 010101001
we will add 0's to complete the 23 bits

The IEEE 754 Single precision is:
= 0 10000101 01010100100000000000000
This can be written in hexadecimal form 42AA4000

2. Double precision:
biased exponent 1023+6=1029
1029 = 10000000101
Normalised mantisa = 010101001
we will add 0's to complete the 52 bits

The IEEE 754 Double precision is:
= 0 10000000101 0101010010000000000000000000000000000000000000000000
This can be written in hexadecimal form 4055480000000000 

Valores especiales: IEEE ha reservado algunos valores que pueden generar ambigüedad.

  • Cero:
    cero es un valor especial indicado con un exponente y una mantisa de 0. -0 y +0 son valores distintos, aunque ambos son iguales.
  • Desnormalizado:
    si el exponente es todo ceros, pero la mantisa no, entonces el valor es un número desnormalizado. Esto significa que este número no tiene un número inicial asumido antes del punto binario.
  • Infinito:
    los valores +infinito e -infinito se denotan con un exponente de todos los unos y una mantisa de todos los ceros. El bit de signo distingue entre infinito negativo e infinito positivo. Las operaciones con valores infinitos están bien definidas en IEEE.
  • No es un número (NAN):
    el valor NAN se usa para representar un valor que es un error. Esto se representa cuando el campo del exponente son todos unos con un bit de signo cero o una mantisa que no es 1 seguida de ceros. Este es un valor especial que podría usarse para denotar una variable que aún no tiene un valor.
EXPONENTE mantisa VALOR
0 0 exacto 0
255 0 Infinidad
0 no 0 desnormalizado
255 no 0 No es un número (NAN)

Similar para Precisión doble (simplemente reemplazando 255 por 2049), Rangos de números de coma flotante:

desnormalizado normalizado decimal aproximado
Precisión simple ± 2 -149 a (1 – 2 -23 )×2 -126 ± 2 -126 a (2 – 2 -23 )×2 127 ± aproximadamente 10 -44,85 a aproximadamente 10 38,53
Precisión doble ± 2 -1074 a (1 – 2 -52 )×2 -1022 ± 2 -1022 a (2 – 2 -52 )×2 1023 ± aproximadamente 10 -323,3 a aproximadamente 10 308,3

El rango de números de coma flotante positivos se puede dividir en números normalizados y números desnormalizados que usan solo una parte de la precisión de las fracciones. Dado que cada número de punto flotante tiene un valor negativo correspondiente, los rangos anteriores son simétricos alrededor de cero.

Hay cinco rangos numéricos distintos que los números de punto flotante de precisión simple no pueden representar con el esquema presentado hasta ahora:

  1. Números negativos menores que – (2 – 2 -23 ) × 2 127 (desbordamiento negativo)
  2. Números negativos mayores que – 2 -149 (desbordamiento negativo)
  3. Cero
  4. Números positivos menores que 2 -149 (subdesbordamiento positivo)
  5. Números positivos mayores que (2 – 2 -23 ) × 2 127 (desbordamiento positivo)

El desbordamiento generalmente significa que los valores han crecido demasiado para ser representados. El subdesbordamiento es un problema menos grave porque solo denota una pérdida de precisión, que se garantiza que se aproximará mucho a cero.

A continuación se muestra la tabla del rango efectivo total de números finitos de punto flotante IEEE:

Binario Decimal
Único ± (2 – 2 -23 ) × 2 127 aproximadamente ± 10 38,53
Doble ± (2 – 2 -52 ) × 2 1023 aproximadamente ± 10 308,25

Operaciones Especiales –

Operación Resultado
n ÷ ±Infinito 0
±Infinito × ±Infinito ±Infinito
±distinto de cero ÷ ±0 ±Infinito
±finito × ±Infinito ±Infinito
Infinito + Infinito
Infinito – -Infinito
+Infinito
-Infinito – Infinito
-Infinito + – Infinito
– Infinidad
±0 ÷ ±0 Yaya
±Infinito ÷ ±Infinito Yaya
±Infinito × 0 Yaya
NaN == NaN Falso

Publicación traducida automáticamente

Artículo escrito por Ayusharma0698 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *