« Nombres flottants » : différence entre les versions
(Page créée avec « = Formats de nombres flottants à taille variable en informatique = == Flottants étendus == === Double précision étendue (80 bits) === Utilisé principalement par les processeurs x87, ce format offre une précision supérieure à la double précision standard (64 bits). Il est utile dans les calculs scientifiques nécessitant une grande exactitude. == Types dynamiques == === Python et bibliothèques comme decimal, mpmath === Python propose le type `float` b... ») |
mAucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
= | = Représentation des nombres flottants en informatique= | ||
==Définition des nombres flottants== | |||
== | Les nombres flottants permettent de représenter des valeurs réelles avec une partie entière et une partie fractionnaire. Ils sont utiles pour modéliser des quantités continues comme les mesures physiques. | ||
=== | ===Utilité et approximation=== | ||
Les nombres flottants permettent de représenter une large gamme de valeurs, mais avec une précision limitée. Ils sont une approximation des réels, ce qui peut entraîner des erreurs d'arrondi. | |||
== Norme IEEE 754 == | |||
== | La norme IEEE 754 définit les formats de représentation des nombres flottants en informatique. | ||
=== Python | ===Format 32 bits (float) === | ||
Python | Composé de 1 bit de signe, 8 bits d'exposant biaisé, et 23 bits de mantisse. | ||
===Format 64 bits (double)=== | |||
Composé de 1 bit de signe, 11 bits d'exposant biaisé, et 52 bits de mantisse. | |||
=== bfloat16 === | ===Structure : signe, exposant biaisé, mantisse=== | ||
Format 16 bits utilisé | La valeur est calculée comme : (-1)^s × 1.mantisse × 2^(exposant - biais) | ||
===Exemple de codage=== | |||
=== Posits === | *5.75 → Binaire : 101.11 → Normalisé : 1.0111 × 2^2 | ||
Format alternatif | * 6.25 → Binaire : 110.01 → Normalisé : 1.1001 × 2^2 | ||
==Codage biaisé de l'exposant== | |||
== Formats personnalisés | L'exposant est stocké avec un biais pour éviter les valeurs négatives. | ||
=== Comparaison avec le complément à deux=== | |||
Contrairement au complément à deux, le codage biaisé permet un tri lexicographique des flottants. | |||
===Plage d'exposants=== | |||
== Tableau récapitulatif == | *Float : biais 127 → exposants de -126 à +127 | ||
*Double : biais 1023 → exposants de -1022 à +1023 | |||
== Cas spéciaux== | |||
La norme IEEE 754 définit des représentations pour : | |||
===NaN, Infini, Zéro signé=== | |||
*NaN : Not a Number (résultat indéfini) | |||
*±Inf : dépassement de capacité | |||
*±0 : zéro avec signe distinct | |||
==Limitations== | |||
=== Précision limitée=== | |||
La mantisse fixe limite le nombre de chiffres significatifs. | |||
===Erreurs d'arrondi=== | |||
Les opérations peuvent introduire des erreurs cumulatives. | |||
===Comparaisons piégeuses=== | |||
Deux valeurs proches peuvent ne pas être égales à cause de l'arrondi. | |||
==Formats à taille variable== | |||
===Flottants étendus (80 bits)=== | |||
Utilisés par les processeurs x87 pour une précision accrue. | |||
===Types dynamiques (Python, decimal, mpmath)=== | |||
Python permet des flottants à précision arbitraire via `decimal` et `mpmath`. | |||
===bfloat16=== | |||
Format 16 bits utilisé en IA, avec 8 bits d'exposant et 7 bits de mantisse. | |||
===Posits=== | |||
Format alternatif à précision adaptative proposé par John Gustafson. | |||
===Formats personnalisés (FPGA, GPU)=== | |||
Utilisés pour optimiser les performances ou la mémoire. | |||
==Tableau récapitulatif des formats== | |||
{| class="wikitable" | {| class="wikitable" | ||
! Format | !Format!!Taille!!Usage principal | ||
|- | |- | ||
| IEEE 754 float || 32 bits | |IEEE 754 float||32 bits||Standard CPU | ||
|- | |- | ||
| IEEE 754 double|| 64 bits | |IEEE 754 double||64 bits||Calculs précis | ||
|- | |- | ||
| Extended | |Extended||≥80 bits||Calcul scientifique, x87 | ||
|- | |- | ||
| bfloat16 | |bfloat16||16 bits||IA, réseaux de neurones | ||
|- | |- | ||
| Posit | |Posit||Variable||Recherche, calculs alternatifs | ||
|- | |- | ||
| Decimal/MPFR | |Decimal/MPFR||Variable||Haute précision, finance, science | ||
|} | |} | ||
Version actuelle datée du 31 août 2025 à 15:52
Représentation des nombres flottants en informatique
Définition des nombres flottants
Les nombres flottants permettent de représenter des valeurs réelles avec une partie entière et une partie fractionnaire. Ils sont utiles pour modéliser des quantités continues comme les mesures physiques.
Utilité et approximation
Les nombres flottants permettent de représenter une large gamme de valeurs, mais avec une précision limitée. Ils sont une approximation des réels, ce qui peut entraîner des erreurs d'arrondi.
Norme IEEE 754
La norme IEEE 754 définit les formats de représentation des nombres flottants en informatique.
Format 32 bits (float)
Composé de 1 bit de signe, 8 bits d'exposant biaisé, et 23 bits de mantisse.
Format 64 bits (double)
Composé de 1 bit de signe, 11 bits d'exposant biaisé, et 52 bits de mantisse.
Structure : signe, exposant biaisé, mantisse
La valeur est calculée comme : (-1)^s × 1.mantisse × 2^(exposant - biais)
Exemple de codage
- 5.75 → Binaire : 101.11 → Normalisé : 1.0111 × 2^2
- 6.25 → Binaire : 110.01 → Normalisé : 1.1001 × 2^2
Codage biaisé de l'exposant
L'exposant est stocké avec un biais pour éviter les valeurs négatives.
Comparaison avec le complément à deux
Contrairement au complément à deux, le codage biaisé permet un tri lexicographique des flottants.
Plage d'exposants
- Float : biais 127 → exposants de -126 à +127
- Double : biais 1023 → exposants de -1022 à +1023
Cas spéciaux
La norme IEEE 754 définit des représentations pour :
NaN, Infini, Zéro signé
- NaN : Not a Number (résultat indéfini)
- ±Inf : dépassement de capacité
- ±0 : zéro avec signe distinct
Limitations
Précision limitée
La mantisse fixe limite le nombre de chiffres significatifs.
Erreurs d'arrondi
Les opérations peuvent introduire des erreurs cumulatives.
Comparaisons piégeuses
Deux valeurs proches peuvent ne pas être égales à cause de l'arrondi.
Formats à taille variable
Flottants étendus (80 bits)
Utilisés par les processeurs x87 pour une précision accrue.
Types dynamiques (Python, decimal, mpmath)
Python permet des flottants à précision arbitraire via `decimal` et `mpmath`.
bfloat16
Format 16 bits utilisé en IA, avec 8 bits d'exposant et 7 bits de mantisse.
Posits
Format alternatif à précision adaptative proposé par John Gustafson.
Formats personnalisés (FPGA, GPU)
Utilisés pour optimiser les performances ou la mémoire.
Tableau récapitulatif des formats
| Format | Taille | Usage principal |
|---|---|---|
| IEEE 754 float | 32 bits | Standard CPU |
| IEEE 754 double | 64 bits | Calculs précis |
| Extended | ≥80 bits | Calcul scientifique, x87 |
| bfloat16 | 16 bits | IA, réseaux de neurones |
| Posit | Variable | Recherche, calculs alternatifs |
| Decimal/MPFR | Variable | Haute précision, finance, science |