Représentation des réels 1. Coder sur 8 bits les parties fractionnaires suivant
Représentation des réels 1. Coder sur 8 bits les parties fractionnaires suivantes : (0.578125)10 le résultat est (0.10010100)2 0.578125 × 2 = 1.15625 1 0.15625 × 2 = 0.3125 0 0.3125 × 2 = 0.625 0 0.625 × 2 = 1.25 1 0.25 × 2 = 0.5 0 0.5 × 2 = 1.0 1 0.0 × 2 = 0.0 0 (0.85)10 le résultat est (0.11011001)2 0.85 × 2 = 1.7 1 0.7 × 2 = 1.4 1 0.4 × 2 = 0.8 0 0.8 × 2 = 1.6 1 0.6 × 2 = 1.2 1 0.2 × 2 = 0.4 0 0.4 × 2 = 0.8 0 0.8 × 2 = 1.6 1 ça boucle ... 2. Décoder : (0.10110000)2 = (2−1 + 2−3 + 2−4)10 = (0.5 + 0.125 + 0.0625)10 = (0, 6875)10 (0.11011001)2 = (2−1 +2−2 +2−4 +2−5 +2−8)10 = (0.5+0.25+0.0625+0.03125+0.00390625)10 = (0, 84765625)10 Exercice 2 Représentation des réels en norme IEEE 754 Rappeler l’étendue des valeurs des nombres normalisés en simple et double précision Exercice 3 Codage en IEEE 754 Coder les réels suivants (représentés en base 10) en simple précision : 40 ; -0.078125 ; 13.625 ; -87.375 Pour le nombre 40 – signe 1 bit : + ! 0 – représentation binaire : 101000 (valeur absolue) – normalisation : 1.01000 × 25 – exposant réel (exp effectif) : 5 – exposant décalé (exp codé) 8 bits : (5 + 127)10 = (132)10 = (10000100)2 – Pseudo mantisse sur 23 bits : 01000000000000000000000 – (0 10000100 01000000000000000000000)2 Pour le nombre -0.078125 – signe 1 bit : 1 – 0078125 × 2 = 015625 0 – 015625 × 2 = 03125 0 – 03125 × 2 = 0625 0 – 0625 × 2 = 125 1 – 025 × 2 = 05 0 – 05 × 2 = 10 1 – 00 × 2 = 00 0 – représentation binaire de 0.078125 est 0.0001010 (valeur absolue). – normalisation : 1010 × 2−4 – exposant réel : -4 – exposant décalé 8 bits : (−4 + 127)10 = (123)10 = (01111011)2 –Pseudo mantisse sur 23 bits : 01000000000000000000000 (la même que pour 40 !) – (1 01111011 01000000000000000000000)2 Pour le nombre 13.625 – signe 1 bit : + ! 0 – représentation binaire : 1101.101 (valeur absolue) – normalisation : 1.101101 × 23 – exposant réel : 3 – exposant décalé 8 bits : (3 + 127)10 = (130)10 = (10000010)2 Pseudo mantisse sur 23 bits : 10110100000000000000000 – (01000001010110100000000000000000)2 Exercice corrigé Convertir le nombre décimal 8,625 en virgule flottante suivant la norme IEEE 754 : Corrigé : Conversion de 8,625 en binaire : - Partie entière : 8 => 1000 - Partie décimale : 0,625 => 0,101 8,625 => 1000,101 · Normalisation : 1000,101 x 20 <=> 0,1000101 x 24 · Pseudo-normalisation IEEE 754 : <=> 1,0001010 x 23 (de la forme 1,xxxx ou xxx = pseudo mantisse) · Décomposition du nombre en ses divers éléments : Bit de signe : 0 (Nombre >0) Exposant sur 8 bits biaise à 127 => 3 + 127 = 130 => 10000010 Pseudo mantisse sur 23 bits : 0001010 00000000 00000000 Signe Exposant biaise Pseudo mantisse 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rappel : Virgule flottante IEEE 754 (32 bits) L'exposant est donc décalé de 28-1-1 = 127 dans ce cas. L'exposant d'un nombre normalisé va donc de -126 à +127. L'exposant -127 (qui est décalé vers la valeur 0) est réservé pour zéro et les nombres dénormalisés, tandis que l'exposant 128 (décalé vers 255) est réservé pour coder les infinis et les NaN. Un nombre flottant normalisé a une valeur v donnée par la formule suivante : v = s × 2e × m. · s = (+ou -) 1 représente le signe (selon le bit de signe) ; · e est l'exposant avant son décalage de 127 ; · m = 1+mantisse représente la partie significative (en binaire), d'ou 1 ≤ m < 2 (mantisse etant la partie décimale de la partie significative, comprise entre 0 et 1) Par exemple pour 0b 0 01111100 01000000000000000000000 : le signe est nul, l'exposant est 124 - 127 =-3, et la partie significative est 0b 1,01 soit 1,25 en décimal (1×20 + 0×2−1 + 1×2−2) ; le nombre représenté est donc +1,25×2−3 soit +0,15625. uploads/S4/ exercice-corrige-td-ch2.pdf
Documents similaires










-
33
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 11, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.0626MB