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 |
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 .
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/3De forma predeterminada, 1/3 se redondea hacia abajo.
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