|
Article on other languages:
|
Les nombres à virgule flottante sont les nombres les plus souvent utilisés dans un ordinateur pour représenter des valeurs non entières. Ce sont des approximations de nombres réels. Les nombres à virgule flottante possèdent un signe s (dans {-1, 1}), une mantisse m (aussi appelée significande) et un exposant e. Un tel triplet représente un réel s.m.be où b est la base de représentation (généralement 2 sur ordinateur, mais aussi 16 sur certaines anciennes machines, 10 sur de nombreuses calculatrices, ou éventuellement toute autre valeur). En faisant varier e, on fait « flotter » la virgule décimale. Généralement, m est d'une taille fixée. Ceci s'oppose à la représentation dite en virgule fixe, où l'exposant e est fixé. Les différences de représentation interne et de comportement des nombres flottants d'un ordinateur à un autre obligeaient à reprendre finement les programmes de calcul scientifique pour les porter d'une machine à une autre jusqu'à ce qu'une norme soit proposée par l'IEEE.
Mises en œuvreNorme IEEE 754La norme IEEE 754 (reprise par la norme internationale CEI 60559) spécifie deux formats de nombres en virgule flottante (et deux formats étendus optionnels) et les opérations associées. La quasi-totalité des Architectures d'ordinateurs actuelles, y compris IA32, PowerPC, et AMD64, incluent une implémentation matérielle des calculs sur flottants IEEE, directement dans le microprocesseur, garantissant une exécution rapide. Les deux formats fixés par la norme IEEE 754 sont sur 32 bits (« simple précision ») et 64 bits (« double précision »). La répartition des bits est la suivante, où 1 ≤ M < 2 :
Le tableau ci-dessus indique les bits représentés. Le premier bit de la mantisse d'un nombre normalisé étant toujours 1, il n'est pas représenté dans ces deux formats : on parle de bit implicite. Pour ces deux formats, les précisions sont donc respectivement de 24 et de 53 bits. Flottants étendusCertaines implémentations ajoutent un ou plusieurs types de précision supérieure (ainsi, IA32 a un type étendu sur 80 bits). La norme IEEE 754 prévoit des tailles minimales pour ces types étendus :
Ces représentations « étendues » n'utilisent pas forcément le bit implicite de la mantisse. Dans la pratique, seule la double précision étendue est encore utilisée, dans sa forme minimale (1+15+64 = 80 bits, le fameux type étendu de l'IA32). Lorsque les flottants IEEE offrent une précision insuffisante, on peut devoir recourir à des calculs sur des flottants en précision supérieure. Citons notamment la bibliothèque MPFR. Précautions d'emploiLes calculs en virgule flottante sont pratiques, mais présentent divers désagréments, notamment :
Il est par exemple tentant de réorganiser des expressions en virgule flottante comme on le ferait d'expressions mathématiques. Cela n'est cependant pas anodin, car les calculs en virgule flottante, contrairement aux calculs sur les réels, ne sont pas associatifs. Par exemple, dans un calcul en flottants IEEE double précision, (260+1)-260 ne donne pas 1, mais 0. La raison est que 260+1 n'est pas représentable exactement et est approché par 260. Une valeur particulière du champ d'exposant est réservée à la représentation de valeurs spéciales :
Une autre valeur du champ d'exposant est réservée aux zéros (signés) et aux dénormalisés. Liens externes
|
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net