Les nombres décimaux possèdent une représentation binaire standardisée pour les valeurs de précision simple (32 bits) et double (64 bits) par ANSI/IEEE Standard 754-1985.
Les nombres décimaux simplesLa représentation binaire des nombres à virgules flottantes de précision simple requiert un mot de 32 bits, lequel est composé d'un bit de signe S, de 8 bits pour l'exposant E et de 23 bits pour la fraction décimale.
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 0 1EEEEEEE8 9FFFFFFFFFFFFFFFFFFFFFFFF31
La valeur exprimée par cette représentation binaire est déterminée selon certaines conditions applicables aux parties E, F et S.
Exposant | Fraction et signe | Valeur |
---|---|---|
E=255 | F != nonzero | NaN |
E=255 | F = 0 ET S = 1 | -Infinity |
E=255 | F = 0 ET S = 0 | Infinity |
0 < E < 255 | (-1)**S * 2 ** (E-127) * (1.F) | |
E = 0 | F != 0 | (-1)**S * 2 ** (-126) * (0.F) |
E = 0 | F = 0 | -0 |
E = 0 | F = 0 | 0 |
La représentation binaire des nombres à virgules flottantes de précision simple requiert un mot de 64 bits, lequel est composé d'un bit de signe S, de 11 bits pour l'exposant E et de 52 bits pour la fraction décimale.
S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0 1EEEEEEEEEE11 12FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 |
La valeur exprimée par cette représentation binaire est déterminée selon certaines conditions applicables aux parties E, F et S
Exposant | Fraction et signe | Valeur |
---|---|---|
E = 2047 | F != 0 | NaN |
E = 2047 | F = 0 ET S = 1 | -Infinity |
E = 2047 | F = 0 ET S = 0 | Infinity |
0 < E < 2047 | (-1)**S * 2 ** (E-1012) * (1.F) | |
E = 0 | F != 0 | (-1)**S * 2 ** (-1022) * (0.F) |
E = 0 | F = 0 | -0 |
E = 0 | F = 0 | 0 |
0 00000000 00000000000000000000000 = | 0 |
---|---|
1 00000000 00000000000000000000000 = | -0 |
0 11111111 00000000000000000000000 = | Infinity |
1 11111111 00000000000000000000000 = | -Infinity |
0 11111111 00000100000000000000000 = | NaN |
1 11111111 00100010001001010101010 = | NaN |
0 10000000 00000000000000000000000 | |
= +1 * 2**(128-127) * 1.0 = 2 | |
0 10000001 10100000000000000000000 | |
= +1 * 2**(129-127) * 1.101 = 6.5 | |
1 10000001 10100000000000000000000 | |
= -1 * 2**(129-127) * 1.101 = -6.5 | |
0 00000001 00000000000000000000000 | |
= +1 * 2**(1-127) * 1.0 = 2**(-126) | |
0 00000000 10000000000000000000000 | |
= +1 * 2**(-126) * 0.1 = 2**(-127) | |
0 00000000 00000000000000000000001 | |
= +1 * 2**(-126) * 0.00000000000000000000001 = 2**(-149) |