En la norma o estándar IEEE 754-2008 el formato de 32 bits de base 2 se conoce oficialmente como binary32, aunque se le llamaba single en la versión previa del estándar IEEE 754-1985.
Un entero con signo de 32 bits puede tener un valor máximo de 231 - 1 = 2 147 483 647, mientras que el valor máximo representable en coma flotante del estándar IEEE 754 es (2-2−23) × 2127 ≈ 3,402823466×1038.
Como ejemplo, el número entero de 32 bits 2 147 483 647 se convierte en 2 147 483 650 aplicando la norma IEEE 754.
El formato de precisión simple se conoce como REAL en Fortran,[1] float en C, C++, C#, Java,[2] Float en Haskell,[3] y, como Single en Delphi (Pascal), Visual Basic y MATLAB.
Sin embargo, float en Python, Rubí, PHP, y OCaml y single en las versiones de Octave anteriores a la 3.2 se refieren a números de doble precisión.
El estándar IEEE 754 especifica que un formato binary32 consta de:[4] Este formato proporciona una precisión de 6 a 9 dígitos decimales significativos.
Si una cadena decimal de hasta 6 dígitos decimales significativos se convierte en formato IEEE 754 de precisión simple y luego se convierte de nuevo al mismo número de dígitos decimales significativos, la cadena final debe coincidir con el original y si un número de precisión simple IEEE 754 se convierte en una cadena decimal con al menos 9 dígitos decimales significativos y luego se convierte de nuevo a un número de precisión simple, entonces el número final debe coincidir con el original.
Si se utiliza el formato de número entero sin signo, el valor del exponente utilizado en la aritmética es el exponente desplazado por un sesgo (E).
Para el caso del formato binary32, un valor de exponente desplazado de 127 representa el cero real (es decir, para que 2e-127 sea uno, "e" debe valer 127).
El exponente desplazado (E=e-127) abarca desde −126 hasta +127 ya que los valores de −127 (todos ceros) y 128 (todos unos) son reservados para números especiales.
Los bits se establecen como sigue, para este ejemplo concreto:
El valor real asumido por un determinado dato en formato binary32 con un exponente sesgado (el número entero sin signo de 8 bits) y una fracción de 23 bits esː
donde: por lo tanto: El exponente en los números binarios de precisión simple en coma flotante se codifica mediante una representación desplazada en binario, siendo +127 el desplazamiento cero; también conocido como sesgo de exponente en la norma IEEE 754.
Los valores del exponente son establecidos asíː Por lo tanto, con el fin de obtener el verdadero exponente como se define por la representación binaria desplazada, se tiene que restar el desplazamiento de 127 del exponente almacenado lo que equivale a escribirlo en complemento a dos.
En general, se acude a la norma IEEE 754 en sí para la conversión estricta (incluyendo el comportamiento de redondeo) de un número real en su equivalente en formato binary32.
Para convertir un número real decimal en uno de formato binary32 se debe seguir el siguiente procedimientoː[6] La ventaja de este procedimiento es que, en el paso 5, se obtiene de inmediato la mantisa, la cual se convertirá a binario, sin necesidad de convertir la parte entera, la cual siempre será "1".
A continuación, se presentan ejemplos de conversión a formato binary32 de números reales decimales mayores que 1 tanto enteros, como con parte fraccionaria y un número pequeño mayor que cero y menor que 1.
Por tanto, el valor "e" será el entero inmediatamente inferior, el cual es 5.
Ya que el exponente "e" es 5, se le suma el sesgo de 127 unidades, lo cual da 13210 equivalente a 100001002.
La mantisa real consta de los 5 dígitos a la derecha de la coma (0,96875) la cual se convierte a binario hasta completar los 23 bits del campo T (111110000000000000000002).
La expresión hexadecimal, como es habitual, se obtiene a agrupando todos los bits en 8 conjuntos de 4 y convirtiendo cada uno en el carácter respectivo.
Para números reales muy grandes en notación científica como 7,3491 x 1022, es aplicable el procedimiento descritoːjj
Redondeando al entero inferior más próximo, se obtiene e = 75.
Al exponente decimal 75 se le suman 127 unidades para obtener 202=110010102.
Uniendo las cadenas numéricas, se logra la siguiente expresión en formato binary32ː
Si el valor para "m" se hubiera redondeado a 1,2077 por ejemplo, habrían existido errores que son inherentes al formato binary32 ya que se pierde precisión aunque se usen menos bits para expresar cantidades decimales.
Los ejemplos que siguen son expresiones en hexadecimal y binario de valores en coma flotante que incluyen el signo, el exponente desplazado y la mantisa o significando.
Los siguientes valores son el máximo y el menor valor finito expresable en formato de coma flotante Las siguientes expresiones prueban la existencia de dos tipos de ceros en el formato binary32: Estas expresiones representan los valores infinitos: Para este ejemplo de conversión, se comienza con el número hexadecimal 41C80000, el cual es convertido a binario: La cadena binaria debe ser dividida en tres partes: bit de signo (1 bit), exponente (8bits) y significando (23 bits).
Sumando las tres contribuciones de estos bits : Este significando debe ser multiplicado por la potencia 4 de la base 2 para obtener el resultado final: La siguiente tabla indica como son representados los números dentro de los rangos indicados.
La aritmética de números enteros y el desplazamiento de bits pueden producir una aproximación a la raíz cuadrada recíproca (raíz cuadrada inversa rápida), comúnmente requerida en gráficos computarizados.