Livre_silo 30 août 2013 16:32 Page 47
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
47
2 – Représentation des nombres
chiffre de la mantisse. Ils permettent d’obtenir une répartition plus uniforme des valeurs
infinitésimales représentables (voir exercice 2.51).
POUR ALLER PLUS LOIN Exceptions
Le codage prend également en compte des valeurs exceptionnelles : +∞, −∞ et enfin
les NaN (Not a Number) qui signalent en général une erreur de calcul, par exemple une
division par zéro ou la racine carrée d’un nombre négatif. Ces valeurs non numériques sont
représentées respectivement par les mots de 64 bits suivants :
0 11111111111 0000000000000000000000000000000000000000000000000000
1 11111111111 0000000000000000000000000000000000000000000000000000
0 ou 1 puis 11111111111 puis tout mot de 52 bits non tous nuls.
2.3.3 Dépassements de capacité et problèmes de précision
De même que les entiers, les nombres à virgule flottante possèdent certaines limites inévitables. En voici un rapide inventaire, qui sera détaillé dans la troisième partie Ingénierie
numérique et simulation, au cours de laquelle ces problèmes se poseront concrètement.
Les nombres à virgule flottante étant représentés sur un nombre donné de bits, il existe
forcément un nombre maximal représentable dans ce format. Plus précisément, 64 bits ne
suffisent plus si la représentation du nombre demande :
• un exposant supérieur à 1 023, qui est le plus grand représentable sur 11 bits ;
• ou un exposant égal à 1 023 et une mantisse supérieure à la plus grande mantisse représentable sur 52 bits, c’est-à-dire 1 (implicite) suivi de 52 fois le chiffre 1 après la
virgule.
Tout calcul dont le résultat dépasse cette limite produit une situation qui est également
appelée dépassement arithmétique ; cependant, au lieu de produire une valeur par simple
troncature des bits surnuméraires, on utilise les nombres spéciaux +∞ et −∞, selon le
signe du résultat du calcul. Dans les opérations qui suivent, ceux-ci respectent les règles
de calcul usuelles sur les limites et produisent un NaN lorsqu’aucune règle de calcul ne peut
être appliquée sans ambiguïté.
Une situation similaire mais qui n’ existait pas pour les entiers se produit lorsque l’on veut
représenter un nombre trop proche de 0 :
• Son exposant est inférieur à −1 022, le plus petit exposant représentable sur 11 bits.
• Ou ce nombre est inférieur en valeur absolue au plus petit nombre dénormalisé.
On parle alors de dépassement par valeurs inférieures ou de soupassement arithmétique (en
anglais underflow). Selon les cas, le résultat d’un calcul qui tombe dans cette plage de
valeurs peut soit être arrondi à zéro (le signe du résultat est cependant conservé), soit
produire une erreur.
Précédent

- 60/402

Suivant