Académique Documents
Professionnel Documents
Culture Documents
l'information en binaire:
Les nombres réels
Emmanuelle Peuch
Légende: icônes
Cliquer pour avoir la suite du
texte
3
IV. Format double précision
IV. Exercices
1. Représentation en virgule fixe
2. Représentation en virgule flottante
3. Addition et soustraction des nombres
flottants (IEEE754)
4
I. Représentation en
virgule fixe
• Définition
1. Définition
La représentation en virgule fixe (ou format fixe)
d'un nombre binaire sur N bits comprend une
partie entière suivie d'une partie fractionnaire:
Partie
Partie entière fractionnaire
sur k bits
6
1. Définition
Les réels pouvant être, bien sûr, positif ou
négatif, c'est la convention complément
à deux qui est utilisée pour représenter
ces nombres en binaire.
7
1. Définition
Application Conversion binaire – décimal d'une partie
fractionnaire
Convertissons (0,101)b
Partie fractionnaire
Le procédé est le même
qu'avec les nombres
1 0 1
entiers, mais avec des
puissances de 2 négatives!
-2
1.2-1 + 0.2 + 1.2-3
8
1. Définition
La partie fractionnaire (101)b est donc, en base
10:
9
1. Définition
Application Conversion décimal - binaire d'une partie
fractionnaire
10
1. Définition
On peut aussi utiliser la méthode de la
multiplication répétée par 2
11
I. Représentation en
virgule fixe
• Conversion:
approfondissement
2. Conversion: approfondissement
On se fixe tout d'abord un format de travail.
Prenons un format N = 8 bits
k = 5 chiffres après la virgule
13
2. Conversion: approfondissement
Application
Convertir le chiffre décimal +3,5
Partie entière
On utilise la méthode de conversion des entiers
signés:
(3)d = (011)b
14
2. Conversion: approfondissement
(0,5)d = 2-1
15
2. Conversion: approfondissement
Conclusion
Le nombre à convertir étant positif, nous n'avons
pas besoin de déterminer son complément à 2.
+3,5 0 1 1 1 0 0 0 0
16
2. Conversion: approfondissement
Application
(+1)d = (001)b
Partie fractionnaire
(+0,46875)d = (0 1111)b
Détail du
calcul
17
2. Conversion: approfondissement
Le nombre à convertir étant négatif, il faut
déterminer le complément à 2 de ce dernier:
+1,46876 0 0 1 0 1 1 1 1
Cp 1
1 1 0 1 0 0 0 0
+1
1 1 0 1 0 0 0 1
18
2. Conversion: approfondissement
Conclusion
-1,46876 1 1 0 1 0 0 0 1
19
2. Conversion: approfondissement
Conversion binaire - décimal
Il suffit de faire le chemin inverse
Bit de signe = 0 (nombre positif)
On convertit séparément partie entière et partie
fractionnaire en décimal.
20
2. Conversion: approfondissement
Arithmétique binaire
L'addition (et donc la soustraction puisqu'on est
en convention complément à 2) de nombres
fractionnaires en virgule fixe se fait sur le même
principe qu'en base 10: on aligne les virgule.
21
2. Conversion: approfondissement
Echelle des valeurs
Quels nombres peut on coder en format virgule
fixe?
Format: N = 8 bits
k = 5 chiffres après la virgule
Virgule fixe
22
2. Conversion: approfondissement
Partie entière
On dispose de trois bits:
Bit de signe
Codage de la
partie entière
23
2. Conversion: approfondissement
Partie fractionnaire
On dispose de cinq bits:
Conclusion
En format 8 bits, avec 5 bits pour la partie
fractionnaire, l'échelle des valeurs est:
- 4 à + 3,96875.
24
2. Conversion: approfondissement
Inconvénient du format à virgule fixe
Soit à convertir (+1,5)d:
+1,5 0 0 1 1 0 0 0 0
25
2.Conversion: approfondissement
On peut alors utiliser la représentation en virgule
flottante (ou format flottant).
26
II. Représentation en
virgule flottante
• Système décimal:
rappel
1. Système décimal: rappel
Notation scientifique
Un nombre réel X est représenté par une mantisse
m et un exposant e:
Exposant
e
X = m.10
Mantisse
28
1. Système décimal: rappel
Exemple
Ecriture en notation scientifique
Exposant
X = 0,006234 = 0,006234.100
Mantisse
29
1. Système décimal: rappel
Pour normaliser ce nombre, on a effectué 3 décalages
vers la droite de la virgule: on a multiplié la
mantisse 3 fois par 10.
30
1. Système décimal: rappel
Exemple
Autre exemple
Exposant
X = 91234,56 = 91234,56.100
Mantisse
31
II. Représentation en
virgule flottante
• Système binaire
2. Système binaire
On utilise la même technique que dans le
système décimal, mais en travaillant en base 2 !
Notation scientifique
Un nombre binaire Y est représenté par une
mantisse M et un exposant E:
Exposant
Y = M.2E
Mantisse
33
2. Système binaire
Un nombre binaire flottant est donc
constitué:
- d'un signe
- d'une mantisse
- d'un exposant
34
2. Système binaire
Elle propose deux formats de représentation:
35
2. Système binaire
Format 32 bits
31 30 23 22 0
S Exposant E Mantisse M
Bit de signe
8 bits 23 bits
32 bits
36
2. Système binaire
Bit de signe S
S = 1 si la mantisse est négative.
S = 0 si la mantisse est positive.
37
2. Système binaire
Correspondance entre l'exposant réel (sur 8 bits
en signé) et l'exposant biaisé (sur 8 bits):
-127 0 128
Eréel
E 0 127 255
translation de
+ 127
E = Eréel + 127
38
2. Système binaire
Exemple
39
2. Système binaire
L'exposant biaisé E est donc un nombre non
signé sur 8 bits avec E = Eréel + 127.
40
2. Système binaire
Il est à noter que la norme IEEE 754, en
dehors du format normalisé, admet des
codages spécifiques pour la représentation des
valeurs 0, +, - ainsi que des représentations
dénormalisées.
41
2. Système binaire
Valeurs de l'exposant en format normalisé
42
2. Système binaire
Mantisse M sur 23 bits
La mantisse est normalisée sous la forme:
1 m-1 m-2 … m-23
Virgule
43
2. Système binaire
Pour normaliser la mantisse on procède
comme en base 10.
44
2. Système binaire
45
2. Système binaire
Exemple
Conversion de (- 1039)d
Virgule
46
2. Système binaire
(0100 0000 1111)b . 20
Virgule
10
1039 1 00 0000 1111 . 2
Implicite donc non
présent dans la Mantisse à exprimer sur
mantisse 23 bits
47
2. Système binaire
Exposant E sur 8 bits
Translation de + 127 de Eréel = 10
E = 10 + 127 = (137)d
= (1000 1001)b
48
2. Système binaire
Conclusion
49
2. Système binaire
Exemple
Convertissons le nombre réel binaire suivant
en décimal
Bit de signe:
S = 0 donc nombre positif
50
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000
Exposant biaisé E:
51
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000
Mantisse:
N'oublions pas le bit caché!
M = (1,101 1000 0000 0000 0000 0000)b
Bit caché
52
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000
Conclusion
53
III. Etendue des
nombres en virgule
flottante
III.Etendue des nombres
Quels nombres peut-on exprimer en format
NORMALISE simple précision (32 bits)?
Exposant Eréel
Il varie de -126 à + 127.
L'exposant E biaisé varie donc de 1 à 254.
Mantisse
Mmin = (1,000 0000 0000 0000 0000 0000)b
55
III.Etendue des nombres
Le plus petit réel représentable dans ce
format est :
56
III.Etendue des nombres
Le plus grand réel représentable dans ce
format est :
1 (2 1 )24
S 24 2 2 23
1 2 1
57
III.Etendue des nombres
Ymax = (1+2-1+2-2+…+2-23) . 2127
= (2 – 2-23) . 2127
3,40282 . 1038
Zéro
58
III.Etendue des nombres
Codages de zéro
Nous avons vu que la valeur minimale de l'exposant
était Eréel = -126 (pour les valeurs normalisées).
On utilise alors l'exposant Eréel = - 127 (E biaisé = 0)
et une mantisse nulle pour coder 0. On obtient donc
deux représentation de zéro:
S E biaisé Mantisse
59
III.Etendue des nombres
Codages de l'infini
Nous avons vu que la valeur maximale de l'exposant
était Eréel = 127.
On utilise alors l'exposant Eréel = 128 (E biaisé =
255) et une mantisse nulle pour coder l'infini.
S E biaisé Mantisse
60
III.Etendue des nombres
Résumé
2 codages du
Zéro
-2-127 2-127
-2128 2128
Codage Codage
de -¥ de +¥
61
III.Etendue des nombres
Autres codages
Bit S E réel E biaisé Mantisse Codage de:
0 128 255 0 NaN
1 128 255 0 NaN
0 -127 0 0 valeurs
dénormalisées
1 -127 0 0 valeurs
dénormalisées
62
IV. Format double
précision
IV.Format double précision
En double précision, le format est de 64 bits.
S Ebiasié Partie fractionnaire
Exposant
biaisé sur Mantisse sur 52 bits
Bit de signe
11 bits
Mantisse
La partie fractionnaire s'exprime sur 52 bits. Le bit
caché est toujours 1.
64
V. Exercices
1. Représentation en virgule fixe
Exercice 1 - Convertir les nombres suivants en
binaire, virgule fixe:
+ 1,625
+ 3,96875
- 3,96875
+ 2,134
Format utilisé
- Représentation sur 8 bits
- 5 chiffres après la virgule
solution
66
1. Représentation en virgule fixe
Exercice 2 - Convertir les nombres binaire,
virgule fixe suivants en décimal:
010,01010
101,11011
solution
67
2. Représentation en virgule
flottante
Exercice 1
Convertir les nombres réels suivants en nombres
binaire: norme IEEE754 simple précision
(128)d
(- 32,75)d
(0,0625)d
solution
68
2. Représentation en virgule
flottante
Exercice 2
Convertir les nombres réels binaires suivants en
décimal (norme IEEE754 simple précision):
1 0111 1010 100 0000 0000 0000 0000 0000
0 1010 1010 110 0000 0000 0000 0000 0000
1 1000 0011 111 0000 0000 0000 0000 0000
0 0111 0101 000 0000 0000 0000 0000 0000
solution
69
3. Addition et soustraction des
nombres flottants (IEEE754)
Soit X = 10,5 et Y = 3,5.
Convertir ces nombres en binaire: format
simple précision.
Calculer en binaire X+Y, -X+Y, X-Y, -X-Y.
Vérifier vos résultats en les convertissant dans
le système décimal.
solution
70
3. Addition et soustraction des nombres
flottants (IEEE754)
Une fois que les exposants sont identiques, on
peut ajouter les mantisses.
2- Lorsqu'une mantisse représente un nombre
négatif, on calcule son complément à 2 (Ce qui
permet de ne faire que des sommes binaires!). On
ajoute ensuite les mantisses.
3- Si la valeur absolue du nombre négatif est le plus
grand, le résultat de la somme binaire représente
un nombre négatif. Il faut alors calculer le
complément à 2 du résultat.
4- Il faut normaliser le résultat de l'opération si
nécessaire.
solution
71
FIN
72
Emmanuelle Peuch
Quelques puissances de 2 négatives
73
Solution
Conversion de la partie fractionnaire
de – 1,46876
Utilisons la méthode de la multiplication par 2:
0,50016
2
1,00032 Arrêt car format de 5
bits après la virgule
2-5
74
Exercice
1 Représentation en virgule fixe
Intéressons nous tout d'abord à l'étendue des
nombres représentables dans ce format:
Format 8 bits et 5 chiffres pour la partie fractionnaire.
D'où 3 bits pour représenter la partie entière. Le bit
de poids fort représente le bit de signe et on est en
convention complément à 2.
La partie entière représentable va donc de -4 à +3.
75
Exercice
1 Représentation en virgule fixe
Conversion de 1,625
Partie entière (3 bits)
(1)d = (001)b
Partie fractionnaire (5 bits)
0,625 0,250 0,5
2 2 2
1,250 0,500 1,0
Arrêt
76
Exercice
1 Représentation en virgule fixe
Conversion de 3,96875
Partie entière (3 bits)
(3)d = (011)b
Solution
(3,96875)d = (011,11111)b
77
Exercice
1 Représentation en virgule fixe
Conversion de - 3,96875
Nous venons de voir que:
(+3,96875)d = (011,11111)b
1 0 0 0 0 0 0 1
Solution:
(-3,96875)d = (100,00001)b
78
Exercice
1 Représentation en virgule fixe
Conversion de 2,134
Partie entière (3 bits)
(2)d = (010)b
Partie fractionnaire (5 bits)
0,134 0,268 0,536 0,072 0,144
2 2 2 2 2
0,268 0,536 1,072 0,144 0,288
Solution
(2,134)d = (010,00100)b
79
Exercice
2 Représentation en virgule fixe
010,01010
Bit de signe (poids fort) à zéro: nombre positif
Partie entière:
(010)b =(2)d
Partie fractionnaire:
(01010)b = 2-2 + 2-4 = 0,25 + 0,0625
= 0,3125
Solution:
(010,01010)b = (2,3125)d
80
Exercice
2 Représentation en virgule fixe
101,11011
Bit de signe (poids fort) à un: nombre négatif
Il faut donc prendre le complément à 2 de ce
nombre pour déterminer sa valeur absolue.
Cp 2
1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1
81
Exercice
2 Représentation en virgule fixe
Solution
(101,11011)b = (- 2,15625)b
82
Exercice
1 Représentation en virgule flottante
(128)d
Bit de signe (poids fort) à zéro: nombre positif
83
Exercice
1 Représentation en virgule flottante
Solution:
S E biaisé Mantisse
84
Exercice
1 Représentation en virgule flottante
(-32,75)d
Bit de signe (poids fort) à un: nombre négatif
85
Exercice
1 Représentation en virgule flottante
Exposant biaisé:
E = Eréel + 127 = 5 + 127 = 132
= (1000 0100)b
Solution:
S E biaisé Mantisse
86
Exercice
1 Représentation en virgule flottante
(0,0625)d
Bit de signe (poids fort) à zéro: nombre positif
(0,0625)d = 2-4
= (0,0001)b
Normalisation:
(0,0625)d = (0,0001)b.20
= (1,0000)b.2-4
87
Exercice
1 Représentation en virgule flottante
Exposant biaisé:
E = Eréel + 127 = -4 + 127 = 123
= (0111 1011)b
Solution:
S E biaisé Mantisse
88
Exercice
2 Représentation en virgule flottante
S E biaisé Mantisse
89
Exercice
2 Représentation en virgule flottante
Solution:
90
Exercice
2 Représentation en virgule flottante
S E biaisé Mantisse
91
Exercice
2 Représentation en virgule flottante
Solution:
92
Exercice
2 Représentation en virgule flottante
S E biaisé Mantisse
93
Exercice
2 Représentation en virgule flottante
Solution:
94
Exercice
2 Représentation en virgule flottante
S E biaisé Mantisse
95
Exercice
2 Représentation en virgule flottante
Solution:
96
Addition et soustraction des flottants
Conversion de X = 10,5
97
Addition et soustraction des flottants
Conversion de Y = 3,5
98
Addition et soustraction des flottants
Quelle que soit l'opération à effectuer, il
faut d'abord aligner les exposants sur le
plus grand.
99
Addition et soustraction des flottants
Calcul de X + Y
Les exposants étant les mêmes on fait la
somme des mantisses:
1,0101
+ 0,0111
1,1100 Déjà normalisé
(E = 130)
100
Addition et soustraction des flottants
(E = 130)
X + Y = (1,11)b . 23 = (1+2-1+2-2).23 = 14
Résultat
valide
101
Addition et soustraction des flottants
Calcul de – X + Y
Il faut prendre le complément à 2 de la mantisse
de X:
Cp 2
1 0 1 0 1 0… 0 1 0 1 1 0…
0 1110
102
Addition et soustraction des flottants
Normalisation
(E = 129)
103
Addition et soustraction des flottants
(E = 129)
-X + Y = - (1,11)b . 22 =- (1+2-1+2-2).22 = -7
Résultat
valide
104
Addition et soustraction des flottants
Calcul de X - Y
Il faut prendre le complément à 2 de la mantisse
de Y après alignement des exposants:
Cp 2
0 0 1 1 1 0… 1 1 0 0 1 0…
1 0101 Mantisse de X
+ 1 1001 Cp à 2 mantisse de Y après alignement des
exposants
0 1110 X > Y donc résultat positif.
105
Addition et soustraction des flottants
Normalisation
(E = 129)
106
Addition et soustraction des flottants
Calcul de - X – Y = - (X + Y)
On obtient le même résultat que X+Y mais avec
le bit de signe à 1:
(E = 130)
107