Corrigé
1. La conversion ne se termine pas.
0,1 x 2 = 0,2 -> 0 reste 0,2
0,2 x 2 = 0,4 -> 0 reste 0,4
0,4 x 2 = 0,8 -> 0 reste 0,8
0,8 x 2 = 1,6 -> 1 reste 0,6
0,6 x 2 = 1,2 -> 1 reste 0,2 ← deja rencontre au 1er tour
Le reste 0,2 réapparaît : à partir de là, les quatre mêmes opérations se répètent sans fin.
0,1 = 0,0 0011 0011 0011 0011… : période 0011
La raison est arithmétique : 0,1 = 1/10 et 10 = 2×5. Le facteur 5 ne sera jamais épuisé par des divisions par deux.
2. Normalisation. Le premier 1 apparaît en quatrième position après la virgule : il faut avancer la virgule de quatre rangs.
0,1 = 1,1001 1001 1001… × 2−4
Eb = −4 + 127 = 123 = 01111011.
3. La mantisse et l'arrondi. On écrit les bits après la virgule et on compte jusqu'à 23.
bits 1 a 23 : 1001 1001 1001 1001 1001 100
bit 24 et suivants : 1100 1100 ...
^
le 24e bit vaut 1 et la suite n'est pas nulle
-> on arrondit au superieur : on ajoute 1 au 23e bitLe 23e bit passe de 0 à 1.
M = 10011001100110011001101
La norme impose l'arrondi au plus proche, avec égalité vers le nombre pair. C'est ce qui garantit qu'un même calcul donne le même résultat sur toutes les machines.
4. Le mot complet et la valeur réelle.
0 01111011 10011001100110011001101
soit 3D CC CC CD en hexadecimal
En relisant ce mot exactement, on obtient :
13 421 773 / 134 217 728 = 0,100000001490116…
L'écart avec 0,1 vaut environ 1,5×10−9. Il est minuscule ; il suffit pourtant à faire échouer tout test d'égalité. 0,1 n'existe pas en machine : seul existe le flottant le plus proche.