Académique Documents
Professionnel Documents
Culture Documents
Pierre Réty
janvier-février 2021
L1 informatique — Université d’Orléans
Avec Python :
2
Nombres binaires fractionnaires
𝑛
𝑦 = ∑ 𝑑𝑖 × 2𝑖
𝑖=−𝑚
1
Exemple : 10,012 = 21 + 2−2 = 2 + 4
= 2,2510
3
Nombres binaires fractionnaires
4
Nombres à virgule flottante
Motivation
5
Notation scientifique
6
Virgule flottante
𝑠 𝑒′
𝑦 = (−1) × 𝑚 × 𝐵
7
À chacun sa cuisine
′
système 𝐵 |𝑚| 𝑒min 𝑒′max
Cray 1 (single) 2 48 −8192 8191
Cray 1 (double) 2 96 −8192 8191
DEC VAX G 2 53 −1023 1023
DEC VAX D 2 56 −127 127
HP48G 10 12 −499 499
8
IEEE754
IEEE754-2008
𝑠 𝑒 𝑚
9
Nombres normalisés
10
Exemple de codage
11
Exemple de décodage
Donc :
𝑠 = 1 : négatif
𝑒 = 100102 = 18. Donc 𝑒′ = 𝑒 − 15 = 3
𝑚 = 0011100000
′
On obtient (−1) × 1, 𝑚 × 2𝑒 = −1, 00111 × 23 = −1001, 11 =
−(23 + 20 + 2−1 + 2−2 ) = −(8 + 1 + 0, 5 + 0, 25) = −9, 75
12
Nombres sous-normalisés ou dénormalisés
Lorsque 𝑒 = 00 ⋯ 0.
On fait comme si 𝑒 était 110
et on utilise la valeur à virgule fixe 0,𝑚0 𝑚1 … 𝑚𝑝
13
Nombres spéciaux
Lorsque 𝑒 = 11 ⋯ 1.
14
Propriétés des flottants IEEE
15
Arithmétique sur les flottants
16
Notation scientifique des flottants
0x1c.8p-5
17
Tragique erreur d’arrondi