Nombres Flottants
Nombres Flottants
Nombres Flottants
Poids 23 = 8 22 = 4 21 = 2 20 = 1
Nombre binaire 1 1 1 0 14 = (1110)2
Reste 14 6 2 0 0
Le nombre binaire (1110,1000)2.est une approximation du nombre décimal 14,27. Il est possible de
s’approcher de 14,27 (sans jamais l’atteindre) en ajoutant un nombre un nombre plus important de bits
après la virgule. La représentation la plus proche est 14,2699999999999995736743585439.
Le nombre de bits après la virgule n’étant pas infini, il n’est possible de représenter qu’un nombre fini de
réels de manière exacte, et pour tous les autres la représentation binaire sera une valeur approchée.
En informatique, pour représenter les nombres à virgule, on utilise une représentation similaire à la
«notation scientifique» des calculatrices, sauf qu’elle est en base deux et non en base dix. Il s'agit de la
représentation en virgule flottante, d’où le type float. Un tel nombre est représenté sous la forme
suivante :
S : Signe du nombre
Sm2n m : Mantisse du nombre comprise (1 m 2)
n : Exposant du nombre (entier relatif)
Les nombres à virgule flottante doivent respecter une forme normalisée, afin que la représentation ne
varie pas d'un matériel à l'autre. La norme standard est la norme IEEE 754. Elle définit 4 formats pour
représenter des nombres à virgule flottante : simple précision (32 bits), simple précision étendue (43 bits
min), la double précision (64 bits) et la double précision étendue (80 bits). Le format le plus courant est
le format double précision :
Exposant décalé
N = (1 10001000110 1001001111000011100000000000000000000000000000000000)2
Signe Mantisse
1. Déterminer le signe
S = 1 : le nombre est négatif.
2. Déterminer l’exposant
Exposant décalé = (10001000110)2 = 1094, donc l’exposant n = 1094 – 1023 = 71
3. Déterminer la mantisse
La valeur de matisse est égale à 1 virgule suivie des 52 bits qui expriment la mantisse :
Mantisse = (1,1001001111000011100000000000000000000000000000000000)2
= 20+2-1+2-4+2-7+2-8+2-9+2-10+2-15+2-16+2-17 = (217+216+213+210+29+28+27+22+21+1)/217
= 206 727/131 072 = 1,57720184326171875
1. Déterminer le signe
Le nombre est positif : S = 0.
3. Décaler la virgule
(10001,110001)2 (1,0001110001)2
4. Déterminer la mantisse m
La mantisse m est constituée des bits de la partie « fractions » du nombre précédent auxquels il faut
ajouter des 0 pour compléter les 52 bits de la matisse.
m = (0001 1100 0100 0000 000 0000 0000 0000 0000 0000 0000 0000 0000 0000)2
Exposant décalé
N = (0 10000000011 0001110001000000000000000000000000000000000000000000)2
Signe Mantisse
N = (0100 0000 0011 0001 1100 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000)2
= (4031C40000000000)16
17,765625 = (4031C40000000000)16
Remarque : Dans le cas des nombres flottant, le nombre de bits de matisse n’étant pas infini, il n’est
possible de représenter qu’un nombre fini de réels de manière exacte, et pour tous les autres la
représentation binaire sera une valeur approchée.
Les flottants sont à utiliser avec précautions et uniquement s’il est nécessaire de représenter des
nombres réels. Dans ce cas il ne faut jamais utiliser l’opération d’égalité (==) pour comparer deux réels.