Formato de punto flotante de precisión simple


El formato de punto flotante de precisión simple (a veces llamado FP32 o float32 ) es un formato de número de computadora , que generalmente ocupa 32 bits en la memoria de la computadora ; representa un amplio rango dinámico de valores numéricos mediante el uso de un punto de base flotante .

Una variable de punto flotante puede representar un rango más amplio de números que una variable de punto fijo del mismo ancho de bits a costa de la precisión. Una variable entera de 32 bits con signo tiene un valor máximo de 2 31 − 1 = 2 147 483 647, mientras que una variable de coma flotante base 2 de 32 bits IEEE 754 tiene un valor máximo de (2 − 2 −23 ) × 2 127 ≈ 3,4028235 × 10 38 . Todos los números enteros con 7 dígitos decimales o menos, y cualquier 2 n para un número entero −149 ≤ n ≤ 127, se pueden convertir exactamente en un valor de punto flotante de precisión simple IEEE 754.

En el estándar IEEE 754-2008 , el formato base-2 de 32 bits se denomina oficialmente binary32 ; fue llamado single en IEEE 754-1985 . IEEE 754 especifica tipos adicionales de coma flotante, como representaciones de doble precisión en base 2 de 64 bits y, más recientemente, representaciones en base 10.

Uno de los primeros lenguajes de programación en proporcionar tipos de datos de punto flotante de precisión simple y doble fue Fortran . Antes de la adopción generalizada de IEEE 754-1985, la representación y las propiedades de los tipos de datos de punto flotante dependían del fabricante y el modelo de la computadora, y de las decisiones tomadas por los diseñadores del lenguaje de programación. Por ejemplo, el tipo de datos de precisión simple de GW-BASIC era el formato de punto flotante MBF de 32 bits .

La precisión simple se denomina REAL en Fortran , [1] SINGLE-FLOAT en Common Lisp , [2] float en C , C++ , C# , Java , [3] Float en Haskell [4] y Swift , [5] y Single en Object Pascal ( Delphi ), Visual Basic y MATLAB . Sin embargo, flotar en Python , Ruby ,PHP y OCaml y single en versiones de Octave anteriores a la 3.2 se refieren a números de doble precisión . En la mayoría de las implementaciones de PostScript y algunos sistemas integrados , la única precisión admitida es única.

Esto da una precisión de 6 a 9 dígitos decimales significativos . Si una cadena decimal con un máximo de 6 dígitos significativos se convierte a una representación de precisión simple IEEE 754 y luego se vuelve a convertir a una cadena decimal con la misma cantidad de dígitos, el resultado final debe coincidir con la cadena original. Si un número de precisión simple IEEE 754 se convierte en una cadena decimal con al menos 9 dígitos significativos y luego se vuelve a convertir a una representación de precisión simple, el resultado final debe coincidir con el número original. [6]