Livre_silo 30 août 2013 16:32 Page 46
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
46
Informatique pour tous
SAVOIR-FAIRE Représenter en base dix un nombre à virgule flottante
donné en binaire
On identifie le signe s, la mantisse m et l’exposant n. On interprète chacun comme
un nombre décimal en n’oubliant pas de tenir compte du décalage de 1 023 pour
l’exposant. On calcule enfin la quantité sm2
n .
Si l’on note s le bit de signe, e 1 . . . e 11 les bits d’exposant et m 1 . . . m 52 les bits de la
mantisse, on peut également donner l’expression directe suivante du nombre représenté :
(−1)
s
× 2
e1...e11−1023
×
(
1 +
52
∑
i=1
m i
1
2 i
)
Exercice 2.41 Trouver le nombre à virgule flottante représenté par le mot
1100010001101001001111000011100000000000000000000000000000000000.
Le signe est représenté par 1.
L’exposant est représenté par 10001000110.
La mantisse est représentée par 1001001111000011100000000000000000000000000000000000.
Le signe du nombre recherché est −. Le nombre 10001000110 est égal à 1 094 et l’exposant est donc
n = 1 094 − 1 023 = 71. La mantisse est
m = 1, 1001001111000011100000000000000000000000000000000000
= 1 + 1/2 + 1/2 4 + 1/2 7 + 1/2 8 + 1/2 9 + 1/2 10 + 1/2 15 + 1/2 16 + 1/2 17
= (2 17 + 2 16 + 2 13 + 2 10 + 2 9 + 2 8 + 2 7 + 2 2 + 2 + 1)/2 17
=
206 727
131 072
Le nombre représenté est donc −
206 727
131 072
× 2 71 ≃ −3, 724 . . . × 10 21 .
2.3.2 Quelques cas particuliers
Il n’ est pas indispensable de connaître toutes les exceptions à la règle présentée ci-avant,
mais celle du zéro semble incontournable : si la mantisse est censée toujours commencer
par un 1 implicite, il n’est en principe pas possible de représenter le zéro. Par convention,
on décide qu’un nombre vaut zéro si et seulement si tous les bits de son exposant et de sa
mantisse valent 0. Il reste un choix pour le bit de signe, il y a donc un zéro positif et un
zéro négatif dans les nombres à virgule flottante.
Par extension, pour tout nombre dont l’exposant est composé de onze bits 0, on considère
que le chiffre avant la virgule est un 0 implicite et que l’exposant vaut −1 022. On dit
ces nombres dénormalisés car ils ne respectent pas la convention habituelle sur le premier
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
46
Informatique pour tous
SAVOIR-FAIRE Représenter en base dix un nombre à virgule flottante
donné en binaire
On identifie le signe s, la mantisse m et l’exposant n. On interprète chacun comme
un nombre décimal en n’oubliant pas de tenir compte du décalage de 1 023 pour
l’exposant. On calcule enfin la quantité sm2
n .
Si l’on note s le bit de signe, e 1 . . . e 11 les bits d’exposant et m 1 . . . m 52 les bits de la
mantisse, on peut également donner l’expression directe suivante du nombre représenté :
(−1)
s
× 2
e1...e11−1023
×
(
1 +
52
∑
i=1
m i
1
2 i
)
Exercice 2.41 Trouver le nombre à virgule flottante représenté par le mot
1100010001101001001111000011100000000000000000000000000000000000.
Le signe est représenté par 1.
L’exposant est représenté par 10001000110.
La mantisse est représentée par 1001001111000011100000000000000000000000000000000000.
Le signe du nombre recherché est −. Le nombre 10001000110 est égal à 1 094 et l’exposant est donc
n = 1 094 − 1 023 = 71. La mantisse est
m = 1, 1001001111000011100000000000000000000000000000000000
= 1 + 1/2 + 1/2 4 + 1/2 7 + 1/2 8 + 1/2 9 + 1/2 10 + 1/2 15 + 1/2 16 + 1/2 17
= (2 17 + 2 16 + 2 13 + 2 10 + 2 9 + 2 8 + 2 7 + 2 2 + 2 + 1)/2 17
=
206 727
131 072
Le nombre représenté est donc −
206 727
131 072
× 2 71 ≃ −3, 724 . . . × 10 21 .
2.3.2 Quelques cas particuliers
Il n’ est pas indispensable de connaître toutes les exceptions à la règle présentée ci-avant,
mais celle du zéro semble incontournable : si la mantisse est censée toujours commencer
par un 1 implicite, il n’est en principe pas possible de représenter le zéro. Par convention,
on décide qu’un nombre vaut zéro si et seulement si tous les bits de son exposant et de sa
mantisse valent 0. Il reste un choix pour le bit de signe, il y a donc un zéro positif et un
zéro négatif dans les nombres à virgule flottante.
Par extension, pour tout nombre dont l’exposant est composé de onze bits 0, on considère
que le chiffre avant la virgule est un 0 implicite et que l’exposant vaut −1 022. On dit
ces nombres dénormalisés car ils ne respectent pas la convention habituelle sur le premier
