next up previous index
suivant: Opérations sur les flottants monter: Les réels précédent: Virgule fixe et flottante.   Index


Les flottants au format double

Cette section développe les notions de la section précédente pour les flottants machine, utilisables dans les langage de programmation usuels, elle peut être omise. La représentation d'un double en mémoire se compose de 3 parties : le bit de signe s = ±1 sur 1 bit, la mantisse M $ \in$ [0, 252[ sur 52 bits, et l'exposant e $ \in$ [0, 211[ sur 11 bits. Pour les nombres ``normaux'', l'exposant est en fait compris entre 1 et 211 - 2, le nombre représenté est le rationnel

(1 + $\displaystyle {\frac{{M}}{{2^{52}}}}$)2e+1-210

Pour écrire un nombre sous cette forme, il faut d'abord chercher par quel multiple de 2 il faut le diviser pour obtenir un réel r dans [1, 2[, ce qui permet de déterminer l'exposant e. Ensuite on écrit la représentation en base 2 de r - 1 $ \in$ [0, 1[. Exemples : On observe que la représentation en base 2 de 6.4 a du être arrondie (car elle est infinie en base 2) bien qu'elle soit exacte (finie) en base 10. Seuls les entiers et les rationnels dont le dénominateur est une puissance de 2 peuvent être représentés exactement. Ceci entraine des résultats qui peuvent surprendre comme par exemple le fait que 0.3 - 3*0.1 n'est pas nul.

Des représentations spéciales (avec e = 0 ou e = 211 - 1) ont été introduites pour représenter ±$ \infty$ (pour les flottants plus grands en valeur absolue que le plus grand flottant représentable), et pour représenter les nombres non nuls plus petits que le plus petit flottant représentable de la manière exposée ci-dessus (on parle de flottants dénormalisés), ainsi que le nombre NaN (Not a Number) lorsqu'une opération a un résultat indéfini (par exemple 0/0).


next up previous index
suivant: Opérations sur les flottants monter: Les réels précédent: Virgule fixe et flottante.   Index
Retour à la page principale de mat249