Nombres flottants

De knowledge
Aller à la navigation Aller à la recherche

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