Número de media precisión

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 26 de diciembre de 2014; las comprobaciones requieren 11 ediciones .

El número de media precisión ( ing.  half precision ) es un formato de computadora para representar números que ocupa la mitad de la palabra de la computadora en la memoria (en el caso de una computadora de 32 bits, 16 bits o 2 bytes). Rango de valores ± 2 −24 (5.96E-8) - 65504. Precisión aproximada - 3 dígitos (10 dígitos binarios, log 10 (2 11 )).

Señal
expositor
_
mantisa
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
quince ocho 7 0

Codificación de campo exponencial

Los números binarios de coma flotante de precisión media codifican el campo Exponente utilizando un sesgo de 15.

En otras palabras, para obtener el orden real (para Exponente de 00001 2 a 11110 2 ) reste 15 (es decir, 01111 2 ) del campo Exponente codificado.

Utilizando los valores 00000 2 y 11111 2 , los campos Exponente codifican casos especiales.

Exponente significado cero significativo distinto de cero Ecuación
00000 2 +0 , −0 número subnormal (−1) bit de signo × 2 −14 × 0.bits significativos 2
00001 2 , ..., 11110 2 número normalizado (−1) signbit × 2 exponente−15 × 1.significantbits 2
11111 2 ±infinito NaN (silencio, señalización)

Valor mínimo exacto ( subnormal ) positivo = 2 −24 ≈ 5,96 × 10 −8 .

Valor positivo mínimo ( normal ) = 2 −14 ≈ 6,10 × 10 −5 .

Valor máximo representable = ( 2−2−10 ) × 215 = 65504 .

Ejemplos de números de semiprecisión

En estos ejemplos, los números de punto flotante se representan en binario. Incluyen el bit de signo, el exponente y la mantisa.

0 01111 0000000000 = +1 * 2 15-15 = 1 0 01111 0000000001 = +1.0000000001 2 * 2 15-15 =1 + 2 -10 = 1.0009765625 (el siguiente número más alto después de 1) 1 10000 0000000000 = -1 * 2 16-15 = -2 0 11110 1111111111 = 65504 0 00001 0000000000 = 2 −14 ≈ 6,10352 × 10 −5 (Número normal positivo mínimo) 0 00000 1111111111 = 2 -14 - 2 -24 ≈ 6,09756 × 10 -5 (Máximo desnormalizado ) 0 00000 0000000001 = 2 −24 ≈ 5,96046 × 10 −8 (Mínimo positivo desnormalizado) 0 00000 0000000000 = 0 1 00000 0000000000 = −0 0 11111 0000000000 = infinito 1 11111 0000000000 = −infinito 0 01101 0101010101 ≈ 0,33325... ≈ 1/3

De forma predeterminada, 1/3 se redondea hacia abajo.

Límites de precisión en números enteros

Los números enteros entre 0 y 2047 se representan exactamente
Los números enteros entre 2048 y 4095 se redondean hacia abajo al múltiplo más cercano de 2 (un número par) Los números
enteros entre 4096 y 8191 se redondean hacia abajo al múltiplo más cercano de 4
Los números enteros entre 8192 y 16383 se redondean hacia abajo a el múltiplo de 8 más cercano Los
enteros entre 16384 y 32767 se redondean hacia abajo al múltiplo de 16 más cercano Los
enteros entre 32768 y 65535 se redondean hacia abajo al múltiplo de 32 más cercano

Véase también