Initiation à l’Architecture des Ordinateurs : Représentation des Données
Exercice N°3
Effectuez les additions suivantes des nombres binaires de 3 chiffres, sachant que l’on utilise la complémentation à 2 pour représenter les nombres négatifs :
000 000 101 111 101 010
001 111 101 110 110 011
Indiquez quelles sont les additions dont le résultat est invalide.
Vérifiez vos résultats en effectuant les mêmes opérations après avoir converti les nombres dans le système décimal.
Corrigé :
Bin | Déc | Bin | Déc | Bin | Déc | Bin | Déc | Bin | Déc | Bin | Déc | |||||
000 | 0 | 000 | 0 | 101 | -3 | 111 | -1 | 101 | -3 | 010 | 2 | |||||
001 | 1 | 111 | -1 | 101 | -3 | 110 | -2 | 110 | -2 | 011 | 3 | |||||
001 | +1 | 111 | -1 | 010 | -6 | 101 | -3 | 011 | -5 | 101 | +5 | |||||
+1 |
OK |
-1 |
OK |
+2 |
KO |
-3 |
OK |
3 |
KO |
-3 |
KO |
Le résultat est invalide lorsque les 2 opérandes sont de même signe et que le résultat est de signe opposé.
Exercice N°4
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
8,625 => 1000,101 - Partie décimale : 0,625 => 0,101
- Partie entière : 8 => 1000
- Normalisation : 1000,101 x 20 <=> 0,1000101 x 24
- Pseudo-normalisation IEEE 754 : <=> 1,0001010 x 23
(de la forme 1,xxxx où xxx = pseudo mantisse) - Décomposition du nombre en ses divers éléments :
- Bit de signe : 0 (Nombre >0)
- Exposant sur 8 bits biaisé à 127 => 3 + 127 = 130 => 10000010
- Pseudo mantisse sur 23 bits : 0001010 00000000 00000000
Signe | Exposant biaisé | 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 |
Exercice N°5
En utilisant le codage virgule flottante utilisé par IBM pour la famille d’ordinateurs 370(1) , exprimez sous forme normalisée le nombre fractionnaire 7/64.
(1) (Signe de la mantisse sur un bit, Exposant sur 7 bits décalé de 64, Mantisse à 24 bits avec la virgule binaire située à gauche de la mantisse, la base d’exponentiation étant 16)
Corrigé :
- Conversion de 7/64 en Hexadécimal :
Première méthode : 7/64 = 0,109375
Le nombre ne comporte pas de partie entière et il suffit de convertir la partie décimale en hexadécimal :
0,109375 => 0,1C