Nombres entiers et flottants
Représentation des entiers naturels⚓︎
Codage des entiers naturels (Eduscol)⚓︎
Système quaternaire "GaBuZoMeu" des shadoks⚓︎
Tests sur les systèmes de numération binaire et décimal (LearningApps.org)⚓︎
Représentation des entiers relatifs⚓︎
Codage des entiers relatifs (Eduscol)⚓︎
Représentation des nombres flottants⚓︎
Principe de la représentation des nombres flottants
La représentation des nombres flottants est un moyen de représenter des nombres réels, souvent avec une large plage de valeurs, tout en maintenant une précision contrôlée. Cette représentation est similaire à la notation scientifique, où un nombre est exprimé sous forme de mantisse et d'exposant.
Structure d'un nombre flottant : Un nombre flottant est représenté par trois composantes principales :
- Signe : indique si le nombre est positif ou négatif
- Mantisse : la partie significative du nombre
- Exposant : détermine la puissance de la base (généralement 2 en informatique), pour déplacer la virgule (virgule flottante).
Formule générale : Un nombre flottant \(n\) est exprimé par la formule : \(n~=(−1)^s~×~m~×~b^{~e}\) avec :
- \(s\) : le bit de signe (\(0\) pour un nombre positif, \(1\) pour un nombre négatif),
- \(m\) : la mantisse (valeur comprise entre \(1\) et la base \(b\)),
- \(e\) : l'exposant, qui déplace la virgule.
Exemple : Le nombre \(13.25\) en base \(2\) pourrait être représenté comme :
- Signe : \(0\) (positif)
- Mantisse : \(1.10101\) (en binaire)
- Exposant : \(3\) (car \(13.25 = 1.10101 × 2^3\))
Norme IEEE 754 : C'est le standard le plus courant pour la représentation des nombres flottants en informatique. Elle définit deux formats populaires :
- Simple précision (32 bits) : \(1\) bit pour le signe, \(8\) bits pour l'exposant, \(23\) bits pour la mantisse.
- Double précision (64 bits) : \(1\) bit pour le signe, \(11\) bits pour l'exposant, \(52\) bits pour la mantisse.
Avantages et inconvénients :
- Avantages : permet de représenter des nombres très grands ou très petits avec une plage dynamique.
- Inconvénients : introduit des erreurs d'arrondi et des limites de précision.
Norme IEEE 754
La norme IEEE 754 est un standard pour la représentation des nombres flottants en informatique, largement utilisé dans les systèmes informatiques pour garantir la portabilité et la précision des calculs numériques. Elle définit la manière dont les nombres réels sont représentés, stockés et manipulés en mémoire, en particulier dans les opérations de calcul en virgule flottante.
Structure de base d'un nombre flottant selon IEEE 754
Un nombre flottant, selon cette norme, est décomposé en trois composantes principales :
- Le signe : 1 bit qui indique si le nombre est positif ou négatif,
- L'exposant : qui permet de représenter la puissance de la base (généralement 2),
- La mantisse : la partie décimale qui contient les chiffres significatifs du nombre.
La valeur du nombre flottant est donnée par la formule : \(n~=~(−1)^s~×~m~×~2^{e−d}\)
\(s\) est le bit de signe (0 pour un nombre positif, 1 pour un nombre négatif). \(m\) est la mantisse normalisée (ou significande). \(e\) est l'exposant, et \(d\) est un déacalage qui dépend de la précision (pour équilibrer la représentation de nombres positifs et négatifs).
Formats principaux de la norme IEEE 754
Les deux formats les plus couramment utilisés dans la norme IEEE 754 sont :
Simple précision (32 bits)
- \(1\) bit pour le signe,
- \(8\) bits pour l'exposant décalé \(e_d\) (décalage de \(2^{8-1}~-~1~=~127\)), donc \(e~=~e_d~−~127\)),
-
\(23\) bits pour la mantisse (avec une mantisse implicite qui commence par un 1, ce qui permet de représenter une plus grande plage de valeurs avec moins de bits).
Exemple de répartition : Signe (1 bit) | Exposant (8 bits) | Mantisse (23 bits)
Double précision (64 bits)
- \(1\) bit pour le signe,
- \(11\) bits pour l'exposant décalé \(e_d\) (décalage de \(2^{11-1}~-~1~=~1023\), donc \(e~=~e_d~−~1023\)),
-
\(52\) bits pour la mantisse (toujours avec une mantisse normalisée).
Exemple de répartition : Signe (1 bit) | Exposant (11 bits) | Mantisse (52 bits)
Cas spéciaux : La norme IEEE 754 inclut également des représentations pour des cas particuliers :
- Zéro : un zéro est représenté quand tous les bits de l'exposant et de la mantisse sont nuls, avec un bit de signe de \(0\) ou \(1\) (pour +0 ou −0).
- Infini : quand l'exposant est au maximum (tous les bits à \(1\)) et la mantisse est nulle, cela représente +∞ ou −∞.
- NaN (Not a Number) : quand l'exposant est au maximum et la mantisse est non nulle, cela représente une valeur indéfinie, utilisée pour signaler des erreurs comme une division par zéro ou une opération invalide (comme \(\sqrt{−1}\)).
Avantages de la norme IEEE 754 :
- Uniformité : elle permet une compatibilité entre différentes architectures matérielles.
- Précision contrôlée : la norme balance entre la précision et la plage dynamique, ce qui permet de manipuler à la fois des nombres très grands et très petits.
- Gestion des erreurs : avec des valeurs comme NaN et Infini, les erreurs peuvent être identifiées sans interrompre les calculs.
Exemple d'interprétation d'un nombre en simple précision (\(32\) bits) :
Prenons le nombre codé sur \(32\) bits suivant : \(0~10000001~10000000000000000000000\)
- Signe : 0, donc le nombre est positif.
- Exposant décalé : \(e_d~=~10000001_2 = 129\), donc \(e~=~e_d~−~décalage~=~129~−~127~=~2\).
- Mantisse : \(1.1_2\) (le \(1\) implicite suivi des \(23\) bits), ce qui correspond à \(1,5\) en décimal.
Le nombre est donc : \(1,5~×~2^2~=~6.0\) en décimal.
Conclusion :
La norme IEEE 754 standardise la manière dont les nombres flottants sont représentés, ce qui garantit une meilleure précision et portabilité des calculs numériques dans les applications informatiques. Elle est essentielle dans de nombreux domaines, notamment dans les calculs scientifiques et financiers.