2.5 Repr´ esentation des nombres en machine
51
Table 2.2. Codages IEC559 de quelques valeurs particuli` eres
valeur exposant mantisse
±0
L − 1
0
±∞
U + 1
0
N aN
U + 1
= 0
2.5.5 Arrondi d’un nombre r´ eel en repr´ esentation machine
Le fait que, sur tout ordinateur, seul un sous-ensemble F(β, t, L, U ) de R soit
effectivement disponible pose plusieurs probl` emes pratiques. Tout d’abord se
pose la question de la repr´ esentation dans F d’un nombre r´ eel quelconque
donn´ e. D’autre part, mˆ eme si x et y sont deux nombres de F, le r´ esultat d’une
op´ eration entre eux n’appartient pas n´ ecessairement ` a F. On doit donc d´ efinir
une arithm´ etique sur F.
L’approche la plus simple pour r´ esoudre le premier probl` eme consiste ` a
arrondir x ∈ R de fa¸ con `
a ce que le nombre arrondi appartienne `
a F. Parmi
toutes les mani` eres possibles d’arrondir un nombre, consid´ erons la suivante :
´ etant donn´ e x ∈ R en notation positionnelle normalis´ ee, rempla¸ cons x par son
repr´ esentant fl(x) dans F, d´ efini par
fl(x) = (−1)
s (0.a 1 a 2 . . . a t ) · β
e , ˜
a t =
a t
si a t+1 < β/2 ,
a t + 1 si a t+1 ≥ β/2 .
(2.32)
L’application fl : R → F, appel´ ee arrondi, est la plus commun´ ement utilis´ ee
(dans l’approche appel´ ee troncature on prendrait plus trivialement a t = a t ).
Clairement, fl(x) = x si x ∈ F et de plus fl(x) ≤ fl(y) si x ≤ y ∀x, y ∈ R
(propri´ et´ e de monotonie).
Remarque 2.3 (Overflow et underflow ) Tout ce qui a ´ et´ e dit jusqu’` a
pr´ esent est seulement valable pour les nombres dont l’exposant e dans (2.26)
appartient `
a ]L, U [. En effet, si x ∈] − ∞, −x max [∪]x max , ∞[ la valeur fl(x)
n’est pas d´ efinie, tandis que si x ∈] −x min , x min [ l’op´ eration d’arrondi est toujours d´ efinie (mˆ eme en l’absence des nombres d´ enormalis´ es). Dans le premier
cas quand x est le r´ esultat d’une op´ eration sur des nombres de F, on parle
d’overflow, dans le second cas on parle d’underflow (ou de graceful underflow
si les nombres d´ enormalis´ es sont pris en compte). L’overflow provoque une
interruption du programme par le syst` eme.
A part dans des situations exceptionnelles, on peut facilement quantifier
l’erreur, absolue ou relative, commise quand on remplace x par fl(x). On peut
montrer la propri´ et´ e suivante (voir p. ex. [Hig96], Th´ eor` eme 2.2) :
Propri´ et´ e 2.1 Si x ∈ R est tel que x min ≤ |x| ≤ x max , alors
fl(x) = x(1 + δ) avec |δ| ≤ u ,
(2.33)
51
Table 2.2. Codages IEC559 de quelques valeurs particuli` eres
valeur exposant mantisse
±0
L − 1
0
±∞
U + 1
0
N aN
U + 1
= 0
2.5.5 Arrondi d’un nombre r´ eel en repr´ esentation machine
Le fait que, sur tout ordinateur, seul un sous-ensemble F(β, t, L, U ) de R soit
effectivement disponible pose plusieurs probl` emes pratiques. Tout d’abord se
pose la question de la repr´ esentation dans F d’un nombre r´ eel quelconque
donn´ e. D’autre part, mˆ eme si x et y sont deux nombres de F, le r´ esultat d’une
op´ eration entre eux n’appartient pas n´ ecessairement ` a F. On doit donc d´ efinir
une arithm´ etique sur F.
L’approche la plus simple pour r´ esoudre le premier probl` eme consiste ` a
arrondir x ∈ R de fa¸ con `
a ce que le nombre arrondi appartienne `
a F. Parmi
toutes les mani` eres possibles d’arrondir un nombre, consid´ erons la suivante :
´ etant donn´ e x ∈ R en notation positionnelle normalis´ ee, rempla¸ cons x par son
repr´ esentant fl(x) dans F, d´ efini par
fl(x) = (−1)
s (0.a 1 a 2 . . . a t ) · β
e , ˜
a t =
a t
si a t+1 < β/2 ,
a t + 1 si a t+1 ≥ β/2 .
(2.32)
L’application fl : R → F, appel´ ee arrondi, est la plus commun´ ement utilis´ ee
(dans l’approche appel´ ee troncature on prendrait plus trivialement a t = a t ).
Clairement, fl(x) = x si x ∈ F et de plus fl(x) ≤ fl(y) si x ≤ y ∀x, y ∈ R
(propri´ et´ e de monotonie).
Remarque 2.3 (Overflow et underflow ) Tout ce qui a ´ et´ e dit jusqu’` a
pr´ esent est seulement valable pour les nombres dont l’exposant e dans (2.26)
appartient `
a ]L, U [. En effet, si x ∈] − ∞, −x max [∪]x max , ∞[ la valeur fl(x)
n’est pas d´ efinie, tandis que si x ∈] −x min , x min [ l’op´ eration d’arrondi est toujours d´ efinie (mˆ eme en l’absence des nombres d´ enormalis´ es). Dans le premier
cas quand x est le r´ esultat d’une op´ eration sur des nombres de F, on parle
d’overflow, dans le second cas on parle d’underflow (ou de graceful underflow
si les nombres d´ enormalis´ es sont pris en compte). L’overflow provoque une
interruption du programme par le syst` eme.
A part dans des situations exceptionnelles, on peut facilement quantifier
l’erreur, absolue ou relative, commise quand on remplace x par fl(x). On peut
montrer la propri´ et´ e suivante (voir p. ex. [Hig96], Th´ eor` eme 2.2) :
Propri´ et´ e 2.1 Si x ∈ R est tel que x min ≤ |x| ≤ x max , alors
fl(x) = x(1 + δ) avec |δ| ≤ u ,
(2.33)
