Número de coma flotante

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 28 de enero de 2022; las comprobaciones requieren 10 ediciones .

Un número de punto flotante (o número de punto flotante ) es una forma exponencial de representar números reales (reales) , en el que el número se almacena como una mantisa y un exponente ( exponente ). En este caso, el número de coma flotante tiene una precisión relativa fija y una absoluta variable. La representación más utilizada se establece en el estándar IEEE 754 . La implementación de operaciones matemáticas con números de coma flotante en los sistemas informáticos puede ser tanto de hardware como de software.

"Coma flotante" y "coma flotante"

Dado que en algunos países, predominantemente de habla inglesa y de habla inglesa, al escribir números, la parte entera se separa del punto fraccionario, el término "punto flotante" aparece en la terminología de estos países .  Dado que en Rusia la parte entera de un número se separa tradicionalmente de la parte fraccionaria mediante una coma, el término "coma flotante" se usa históricamente para referirse al mismo concepto, sin embargo, en la actualidad, ambas opciones se pueden encontrar en idioma ruso. bibliografía y documentación técnica.

Origen del nombre

El nombre "coma flotante" proviene del hecho de que una coma en la representación posicional de un número (punto decimal o, para computadoras, una coma binaria; en adelante, simplemente una coma) se puede colocar en cualquier lugar en relación con los dígitos en la cadena. Esta posición de coma se especifica por separado en la representación interna. Por lo tanto, la representación de un número en forma de coma flotante puede verse como una implementación informática de la notación exponencial para números.

La ventaja de utilizar la representación de números en punto flotante sobre la representación en punto fijo (y enteros ) es que se puede utilizar un rango de valores mucho mayor manteniendo la misma precisión relativa . Por ejemplo, en forma de punto fijo, un número que tiene 6 dígitos enteros y 2 decimales se puede representar como 123.456,78 . A su vez, en el formato de punto flotante en los mismos 8 dígitos , puedes escribir los números 1.2345678 ; 1.234.567,8 ; 0.000012345678 ; 12 345 678 000 000 000 y así sucesivamente, pero para esto es necesario tener un campo adicional de dos dígitos para registrar los exponentes de la base 10 de 0 a 16, mientras que el número total de dígitos será 8 + 2 = 10 .

La velocidad a la que una computadora realiza operaciones con números representados en forma de punto flotante se mide en FLOPS (del inglés  operaciones de punto flotante por segundo  - "[número] de operaciones de punto flotante por segundo") y es uno de los principales Unidades para medir la velocidad de los sistemas informáticos.

Estructura numérica

Un número de coma flotante consta de las siguientes partes:

Formas normales y normalizadas

La forma normal de un número de coma flotante es aquella en la que la mantisa (sin tener en cuenta el signo) está en el semiintervalo , es decir, .

Esta forma de notación tiene un inconveniente: algunos números se escriben de forma ambigua (por ejemplo, 0.0001 se puede escribir como 0.000001⋅10 2 , 0.00001⋅10 1 , 0.0001⋅10 0 , 0.001⋅10 −1 , 0.01⋅ 10 −2 y así on), por lo tanto, también es común otra forma de notación (especialmente en informática): normalizada , en la que la mantisa de un número decimal toma valores de 1 (inclusive) a 10 (exclusivamente), es decir (de manera similar, el mantisa de un número binario toma valores de 1 a 2). De esta forma, cualquier número (excepto ) se escribe de forma única. La desventaja es que es imposible representar el 0 de esta forma, por lo que la representación de números en informática proporciona un signo especial ( bit ) para el número 0.

El bit más alto (la parte entera del número) de la mantisa de un número binario (excepto el 0) en forma normalizada es igual a 1 (la llamada unidad implícita ), por lo tanto, al escribir la mantisa de un número en un computadora, se puede omitir el bit alto, que se usa en el estándar IEEE 754 . En los sistemas numéricos posicionales de base mayor que 2 ( internos , cuaternarios, etc.), esta propiedad no existe.

Métodos de grabación

Con opciones de diseño limitadas (por ejemplo, mostrar un número en un indicador de siete segmentos ) y también, si es necesario, proporcionar una entrada de números rápida y conveniente, en lugar de escribir la forma m b e ( m  es la mantisa; b  es la base , la mayoría de las veces 10; e  es el exponente), escriba solo la mantisa y el exponente, separándolos con la letra "E" (del exponente inglés ). En este caso, se asume implícitamente que la base es igual a 10. Por ejemplo, el número 1.528535047⋅10 −25 en este caso se escribe como 1.528535047E-25.  

Resumen

Hay varias formas en que las cadenas de dígitos pueden representar números:

Escribir un número en forma de punto flotante le permite realizar cálculos en una amplia gama de valores, combinando un número fijo de dígitos y precisión. Por ejemplo, en representación decimal de números de coma flotante (3 dígitos), la operación de multiplicación, que escribiríamos como

0,12 × 0,12 = 0,0144

en forma normal se representa como

(1,20⋅10 −1 ) × (1,20⋅10 −1 ) = (1,44⋅10 −2 ).

En formato de punto fijo, obtendríamos redondeo forzado

0,120 × 0,120 = 0,014.

Hemos perdido el dígito más a la derecha del número, ya que este formato no permite que la coma "flote" a lo largo de la entrada del número.

Rango de números representables en formato de coma flotante

El rango de números que se pueden escribir de esta manera depende de la cantidad de bits asignados para representar la mantisa y el exponente. En una computadora típica de 32 bits que usa doble precisión (64 bits), la mantisa es un signo de 1 bit + 52 bits, el exponente es un signo de 1 bit + 10 bits. Por lo tanto, obtenemos un rango de precisión de aproximadamente 4.94⋅10 −324 a 1.79⋅10 308 (de 2 −52  × 2 −1022 a ~1 × 2 1024 ). (o de 3.7⋅10 -1126 a 9.99⋅10 1091 ). En el estándar IEEE 754 se reservan varios valores de este tipo para permitir representar valores especiales. Estos incluyen los valores NaN (No es un número) y +/-INF (Infinito ) que resultan de las operaciones de división por cero o cuando se excede el rango numérico. También se incluyen aquí los números desnormalizados , que tienen una mantisa menor que uno. Los dispositivos especializados (como las GPU ) a menudo carecen de soporte para números especiales. Hay paquetes de software en los que la cantidad de memoria asignada para la mantisa y el exponente se establece mediante programación y está limitada solo por la cantidad de memoria disponible en la computadora (consulte Aritmética de precisión arbitraria ).

Precisión Único Doble Extendido
Tamaño (bytes) cuatro ocho diez
Número de lugares decimales ~7.2 ~15,9 ~19.2
Valor mínimo (>0), denormalidad 1.4⋅10 −45 4.9⋅10 −324 3.7⋅10 −1126
Valor más bajo (>0), normal 1.2⋅10 −38 2.3⋅10 −308 1⋅10 −1091
valor más alto 3.4×10 +38 1.7×10 +308 9.9×10 +1091
campos SEF SEF SEIF
Tamaños de margen 1-8-23 1-11-52 1-15-1-63

Máquina épsilon

A diferencia de los números de punto fijo , la cuadrícula de números que puede mostrar la aritmética de punto flotante no es uniforme: es más densa para números con exponentes pequeños y más dispersa para números con exponentes grandes. Pero el error relativo de escribir números es el mismo para números pequeños que para números grandes. Máquina épsilon es el número positivo más pequeño ε tal que (el signo denota suma de máquina). En términos generales, los números a y b están correlacionados de modo que la máquina no distingue.

Para precisión simple , es decir, aproximadamente 7 dígitos significativos . Para doble precisión: , 15 dígitos significativos [1] .

Véase también

Notas

  1. E. Cheney, David Kincaid. Matemática Numérica y Computación. — Cengage Learning, 2012. — 43– pág. — ISBN 1-133-71235-5 .

Literatura

Enlaces