Nombre flottant

Nombre flottant

Virgule flottante

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.beb 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.

Sommaire

Mises en œuvre

Norme IEEE 754

Article détaillé : IEEE 754.

La 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 :

  Encodage Signe Exposant Mantisse Valeur d'un nombre
Simple précision 32 bits 1 bit 8 bits 23 bits (-1)^S \times M \times 2^{(E-127)}
Double précision 64 bits 1 bit 11 bits 52 bits (-1)^S \times M \times 2^{(E-1023)}

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 étendus

Certaines 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 :

  Signe Exposant Mantisse
Simple précision étendue 1 bit 11 bits ou plus 32 bits ou plus
Double précision étendue 1 bit 15 bits ou plus 64 bits ou plus

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'emploi

Les calculs en virgule flottante sont pratiques, mais présentent divers désagréments, notamment :

  • leur précision limitée, qui se traduit par des arrondis (dus aux opérations, ainsi qu'aux changements de base implicites, si la base est différente de 10) qui peuvent s'accumuler de façon gênante. Pour cette raison, les travaux de comptabilité ne sont pas effectués en virgule flottante, car tout doit tomber juste au centième près. En particulier, la soustraction de deux nombres très proches provoque une grande perte de précision relative : on parle de « cancellation ».
  • une plage d'exposants limitée, pouvant donner lieux à des « overflows » (lorsque le résultat d'une opération est plus grand que la plus grande valeur représentable) et à des « underflows » (lorsqu'un résultat est plus petit, en valeur absolue, que le plus petit flottant normalisé positif), puis à des résultats n'ayant plus aucun sens.

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 :

  • NaN (« not a number »), qui sera par exemple le résultat de la tentative de division flottante de zéro par zéro, ou de la racine carrée d'un nombre strictement négatif. Les NaN se propagent : la plupart des opérations faisant intervenir un NaN donnent NaN (des exceptions sont possibles, comme NaN puissance 0, qui peut donner 1).
  • Un infini positif et un infini négatif, qui sont par exemple le résultat d'un « overflow » en arrondi au plus près.

Une autre valeur du champ d'exposant est réservée aux zéros (signés) et aux dénormalisés.

Voir aussi

Articles connexes

Liens externes

Ce document provient de « Virgule flottante ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Nombre flottant de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • flottant — flottant, ante [ flɔtɑ̃, ɑ̃t ] adj. • XVIe; de 1. flotter 1 ♦ Qui flotte. Glaces flottantes. ⇒ iceberg. Bois flottants. Pêche à la ligne flottante. Mine flottante. Ancre flottante. ÎLES FLOTTANTES, formées de végétaux entrelacés et d une légère… …   Encyclopédie Universelle

  • Flottant — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sur les autres projets Wikimedia : « Flottant », sur le Wiktionnaire (dictionnaire universel) Le mot flottant peut désigner plusieurs… …   Wikipédia en Français

  • Nombre à virgule flottante — Virgule flottante 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… …   Wikipédia en Français

  • Monde flottant — Ukiyo e Utamaro : Trois Beautés de notre temps Ukiyo e (浮世絵, Ukiyo e …   Wikipédia en Français

  • Parquet flottant — Le parquet flottant (ou laminé) est un parquet destiné à être posé, le plus souvent sur un matériau préexistant. Il n est pas fixé au sol, les planches étant solidaires les unes des autres par emboîtage. Sommaire 1 Histoire et taille du marché 2… …   Wikipédia en Français

  • Monde Flottant — (Sillage) Monde flottant 11e album de la série Sillage Scénario Jean David Morvan Dessin Philippe Buchet Coloriste Philippe Buchet Personnages principaux Navis, Maitre Ehmté Ciss Ron …   Wikipédia en Français

  • Corps flottant — Myodésopsie Impression de mouches volantes, comme elles seraient vues sur un fond de ciel bleu Les myodésopsies (autrement appelées corps flottants ou mouches volantes) se définissent comme des images qui apparaissent dans le champ visuel, en… …   Wikipédia en Français

  • flottante — ● flottant, flottante adjectif Qui flotte sur l eau : Des mines flottantes. Qui flotte dans l air : Une brume flottante. Qui ondoie au gré du vent, des mouvements : Un drapeau flottant. Des cheveux flottants. Se dit d un vêtement qui n est pas… …   Encyclopédie Universelle

  • IEEE 754 — L’IEEE 754 est un standard pour la représentation des nombres à virgule flottante en binaire. Il est le plus employé actuellement pour le calcul des nombres à virgule flottante dans le domaine informatique, avec les CPU et les FPU. Le standard… …   Wikipédia en Français

  • IEEE-754 — L’IEEE 754 est un standard pour la représentation des nombres à virgule flottante en binaire. Il est le plus employé actuellement pour le calcul des nombres à virgule flottante dans le domaine informatique, avec les CPU et les FPU. Le standard… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”