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:
- 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. - 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. - 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:
- Números negativos menores que – (2 – 2 -23 ) × 2 127 (desbordamiento negativo)
- Números negativos mayores que – 2 -149 (desbordamiento negativo)
- Cero
- Números positivos menores que 2 -149 (subdesbordamiento positivo)
- 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