Présentation de la norme IEEE 754 simplifiée
Il faut quand même
- Qu'on puisse représenter 0 (pour cela on enlève le 1 avant la virgule de la mantisse des petits nombres)
- Qu'on gère les dépassements de capacité (pour cela on donne un type différent aux grands nombres)
Voici le détail de la représentation de cet octet:
- Le premier bit (en bleu) est le bit de signe; il vaut 0
qui représente le signe +: Le nombre représenté est donc positif.
- Les trois bits suivants (en vert) représentent l'exposant. Le nombre binaire
000 représente, d'habitude, le nombre
0. Mais on convient de soustraire 3 et l'exposant est en réalité -3:
Le nombre représenté est de la forme
mantisse×2-3
.
- La mantisse est un nombre entre 1 et 2, dont les 4 chiffres (binaires) après la virgule sont codés en rouge:
L'entier codé en binaire 0000
est 0; il doit être divisé par 16 ce qui donne 0 puis on lui
ajoute 0 pour avoir la valeur de la mantisse: 0.
L'octet affiché est donc 0×2-3 =
0.
Explications
Cas des petits nombres
- Si l'exposant est -3 c'est qu'on a un petit nombre, dans ce cas le chiffre (non représenté) avant la virgule de la mantisse est 0
- Si l'exposant est entre -2 et 2, la mantisse est de la forme 1,... (on suppose que le chiffre avant la virgule est un 1)
- Quel est le plus petit nombre d'exposant autre que -3 ?
- Quel est le plus grand nombre d'exposant -3 ?
- Peut-on maintenant représenter 0 ?
- De combien de manières ?
- Quel est le plus petit nombre strictement positif (ε) ?
- Quel est son inverse ? Est-il représentable avec ce codage ?
Cas des grands nombres
- On convient que le plus grand nombre représentable est 15,5 (mantisse 1,1111, exposant 3)
- Alors si on additionne 12 (mantisse 1,1 exposant 3) avec lui-même, on ne peut pas représenter la somme: Tout nombre
supérieur ou égal à 16 est considéré comme infini. On note
Infinity
ce "nombre".
- Par convention, l'infini est représenté par un exposant 4 et une mantisse 1: Tous les bits d'exposant positionnés, aucun bit de mantisse positionné.
- On imagine comment représenter -∞...
- Tout autre nombre d'exposant 4 est considéré comme invalide, ou "non numérique" (notation
NaN
comme "not a number").
- Combien y a-t-il de résultats non numériques possibles (attention, ils ne sont pas tous positifs) ?