Nombre dénormalisé
From Wikipedia, the free encyclopedia
La notion de nombre dénormalisé intervient dans la représentation des nombres en informatique par la méthode de la virgule flottante, telle que normalisé par la norme IEEE 754. C'est une manière de représenter des nombres ayant une valeur très proche de zéro.
La représentation en virgule flottante pour les ordinateurs est fondée sur deux notions : la notation scientifique et le système binaire (ou base 2).
Pour écrire les nombres en base 10, on peut utiliser la notation dite « scientifique », qui comprend deux parties :
- un nombre décimal n, positif ou négatif, dont la valeur absolue est comprise entre 1 inclus et 10 exclus ; 1 ≤ n < 10 ;
- une puissance entière de 10, a ;
sous la forme « n × 10a ». Par exemple :
- 1 en écriture scientifique se note « 1 × 100 » ;
- -85 en écriture scientifique se note « -8,5 × 101 » ;
- 0,012 3 en écriture scientifique se note « 1,23 × 10−2 ».
Le terme « exposant » correspond à la puissance de 10, et le terme mantisse correspond à la partie décimale. Ainsi, dans « 1,23 × 10−2 »,
- la mantisse (ou significande) est « 1,23 » ;
- l'exposant est « -2 ».
Le système binaire, dit aussi « base 2 », est une manière de noter les nombres ne faisant intervenir que deux chiffres, 0 et 1. Il est bien adapté à l'électronique, puisque cela correspond à deux états bien distincts : on a aux bornes d'un composant une tension V0 ou une tension V1 (« le courant ne passe pas ou le courant passe »). Pour distinguer cette notation de la notation décimale, nous ajoutons ici un « b » à la fin du nombre. Voici quelques exemples de nombres :
- 0b = 0 ;
- 1b = 1 ;
- 10b = 2 ;
- 11b = 3 ;
- 0,1b = 0,5 ;
- 0,01b = 0,25 ;
- 0,11b = 0,75 ;
- …
Un nombre binaire à virgule de quatre chiffres n1n0,n-1n-2b correspond au nombre décimal n1 × 21 + n0 × 20 + n-1 × 2-1 + n-2 × 2-2.
On peut ainsi avoir une notation scientifique binaire :
- n1n0,n-1n-2b peut se noter n1,n0n-1n-2b × 21.
par exemple
- 11b = 1,1b × 21
- 0,11b = 1,1b × 2-1
Dans le cas de la notation scientifique binaire, le nombre à virgule doit être compris entre 1b inclus et 10b exclus (c'est-à-dire 1 ≤ n < 2), c'est-à-dire que sa partie entière est nécessairement 1b.
Représentation d'un nombre normalisé
Selon la norme IEEE 754, la représentation d'un nombre réel peut se décomposer en trois parties :
- le signe, +1 ou -1, sous la forme de un bit ;
- l'exposant décalé (ou biaisé), sous la forme de e bits représentant un nombre entier ;
- la mantisse, sous la forme de m bits représentant un nombre positif strictement inférieur à 1.
La valeur du nombre représenté vaut :
- valeur = signe × (1 + mantisse) × 2(exposant − décalage)
En effet, en notation scientifique en base binaire, la partie entière est nécessairement 1, il est donc inutile d'utiliser un bit pour la représenter, on se contente de représenter la partie fractionnaire.
Représentation d'un nombre dénormalisé
Un nombre est dit dénormalisé lorsque
- exposant = 0, et
- mantisse ≠ 0.
Si l'on suivait la même représentation que pour les nombres à exposant non nul, on aurait
- valeur = signe × (1 + mantisse) × 2-décalage
mais la valeur retenue est
- valeur = signe × mantisse × 2-décalage + 1
c'est-à-dire que pour un exposant codé sur 8 bits (représentation dite à simple précision), on a
- valeur = signe × mantisse × 2-126
et que pour un exposant codé sur 11 bits (représentation dite à double précision), on a
- valeur = signe × mantisse × 2-1022