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 simples

La 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
Les nombres décimaux doubles

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