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) | |