21/01/2010
Les flottants au format double
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 [0, 252[ sur 52 bits, et l'exposant e [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
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 [0, 1[. Exemples :
- -2
Signe négatif. Il faut diviser sa valeur absolue 2 par 21 pour être entre 1 et 2 dont e + 1 - 210 = 1, l'exposant est e = 210. On a alors r = 1, r - 1 = 0. Représentation
1 10000000000 00000000...0000
- 1.5=3/2
Signe positif, compris entre 1 et 2 dont l'exposant vérifie e + 1 - 210 = 0 soit e = 210 -1 = 29 +28 +27 +26 +25 +24 +23 +22 +21 +20. On a r - 1 = 1/2 = 2-1. D'où la représentation
0 01111111111 10000000...0000
- 6.4=32/5
Positif. Il faut le diviser par 22 pour avoir 8/5 [1, 2[ donc e + 1 - 210 = 2 soit e = 210 + 1. Ensuite r = 3/5 qu'il faut écrire en base 2 (cf. section précédente), on écrit donc les 52 premiers éléments du développement avec une règle d'arrondi du dernier bit au nombre le plus proche. Ici le bit suivant le dernier1001
est un1
, on arrondit donc à1010
. D'où la représentation
0 1000000001 100110011001...10011010
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 ± (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).
suivant: Opérations sur les flottants monter: Les réels précédent: Virgule fixe et flottante. Index Retour à la page principale de mat249 Source : http://www-fourier.ujf-grenoble.fr/~parisse/mat249/mat249... Source :
11:23 Publié dans Les flottants au format double | Lien permanent | Commentaires (0) | Tags : les flottants au format double | | del.icio.us | | Digg | Facebook