2.5 Repr´ esentation des nombres en machine
47
2.5.2 Le syst` eme des nombres `
a virgule flottante
Supposons qu’un ordinateur dispose de N cases m´ emoires pour stocker les
nombres.
La mani` ere la plus naturelle d’utiliser ces cases pour repr´ esenter un nombre
r´ eel non nul x est d’en r´ eserver une pour le signe, N − k − 1 pour les chiffres
entiers et k pour les chiffres situ´ es apr` es la virgule, de sorte que
x = (−1)
s
· [a N−2 a N−3 . . . a k . a k−1 . . . a 0 ] ,
(2.27)
o` u s est ´ egal ` a 0 ou 1. L’ensemble des nombres de ce type est appel´ e syst` eme
` a virgule fixe. L’´ equation (2.27) signifie
x = (−1)
s
· β
−k
N−2
j=0
a j β
j .
(2.28)
Ceci revient donc ` a fixer un facteur d’´ echelle pour l’ensemble des nombres
repr´ esentables.
L’utilisation de la virgule fixe limite consid´ erablement les valeurs minimales
et maximales des nombres pouvant ˆ etre repr´ esent´ es par l’ordinateur, `
a moins
qu’un tr` es grand nombre N de cases m´ emoires ne soit employ´ e (noter en
passant que quand β = 2 la taille d’une case m´ emoire est de 1 bit ).
Ce d´ efaut peut ˆ etre facilement corrig´ e en autorisant un facteur d’´ echelle
variable dans (2.28). Dans ce cas, ´ etant donn´ e un nombre r´ eel non nul x, sa
repr´ esentation en virgule flottante est donn´ ee par
x = (−1)
s
· (0.a 1 a 2 . . . a t ) · β
e = (−1)
s
· m · β
e−t ,
(2.29)
o` u t ∈ N est le nombre de chiffres significatifs a i (avec 0 ≤ a i ≤ β − 1),
m = a 1 a 2 . . . a t un entier, appel´ e mantisse, tel que 0 ≤ m ≤ β
t
− 1 et e
un entier appel´ e exposant. Clairement, l’exposant ne peut varier que dans un
intervalle fini de valeurs admissibles : posons L ≤ e ≤ U (typiquement L < 0
et U > 0). Les N cases m´ emoires sont ` a pr´ esent r´ eparties ainsi : une case pour
le signe, t cases pour les chiffres significatifs et les N − t − 1 cases restantes
pour les chiffres de l’exposant. Le nombre z´ ero a une repr´ esentation ` a part.
Il y a typiquement sur un ordinateur deux formats disponibles pour les
nombres ` a virgule flottante : les repr´ esentations en simple et en double pr´ ecision. Dans le cas de la repr´ esentation binaire, ces formats sont cod´ es dans les
versions standards avec N = 32 bits (simple pr´ ecision)
1
s
8 bits
e
23 bits
m
et avec N = 64 bits (double pr´ ecision)
1
s
11 bits
e
52 bits
m
47
2.5.2 Le syst` eme des nombres `
a virgule flottante
Supposons qu’un ordinateur dispose de N cases m´ emoires pour stocker les
nombres.
La mani` ere la plus naturelle d’utiliser ces cases pour repr´ esenter un nombre
r´ eel non nul x est d’en r´ eserver une pour le signe, N − k − 1 pour les chiffres
entiers et k pour les chiffres situ´ es apr` es la virgule, de sorte que
x = (−1)
s
· [a N−2 a N−3 . . . a k . a k−1 . . . a 0 ] ,
(2.27)
o` u s est ´ egal ` a 0 ou 1. L’ensemble des nombres de ce type est appel´ e syst` eme
` a virgule fixe. L’´ equation (2.27) signifie
x = (−1)
s
· β
−k
N−2
j=0
a j β
j .
(2.28)
Ceci revient donc ` a fixer un facteur d’´ echelle pour l’ensemble des nombres
repr´ esentables.
L’utilisation de la virgule fixe limite consid´ erablement les valeurs minimales
et maximales des nombres pouvant ˆ etre repr´ esent´ es par l’ordinateur, `
a moins
qu’un tr` es grand nombre N de cases m´ emoires ne soit employ´ e (noter en
passant que quand β = 2 la taille d’une case m´ emoire est de 1 bit ).
Ce d´ efaut peut ˆ etre facilement corrig´ e en autorisant un facteur d’´ echelle
variable dans (2.28). Dans ce cas, ´ etant donn´ e un nombre r´ eel non nul x, sa
repr´ esentation en virgule flottante est donn´ ee par
x = (−1)
s
· (0.a 1 a 2 . . . a t ) · β
e = (−1)
s
· m · β
e−t ,
(2.29)
o` u t ∈ N est le nombre de chiffres significatifs a i (avec 0 ≤ a i ≤ β − 1),
m = a 1 a 2 . . . a t un entier, appel´ e mantisse, tel que 0 ≤ m ≤ β
t
− 1 et e
un entier appel´ e exposant. Clairement, l’exposant ne peut varier que dans un
intervalle fini de valeurs admissibles : posons L ≤ e ≤ U (typiquement L < 0
et U > 0). Les N cases m´ emoires sont ` a pr´ esent r´ eparties ainsi : une case pour
le signe, t cases pour les chiffres significatifs et les N − t − 1 cases restantes
pour les chiffres de l’exposant. Le nombre z´ ero a une repr´ esentation ` a part.
Il y a typiquement sur un ordinateur deux formats disponibles pour les
nombres ` a virgule flottante : les repr´ esentations en simple et en double pr´ ecision. Dans le cas de la repr´ esentation binaire, ces formats sont cod´ es dans les
versions standards avec N = 32 bits (simple pr´ ecision)
1
s
8 bits
e
23 bits
m
et avec N = 64 bits (double pr´ ecision)
1
s
11 bits
e
52 bits
m
