Page 1 Nom... Prénom :... MICROINFORMATIQUE, MUI-B 9 1. PRÉPARATION AVANT LA SÉANCE DE TP (Cette page à rendre au début de la séance) Conversion à la main de nombres entiers d une base à une autre puis vérification à l aide d Excel, Matlab ou d une machine à calculer. 1. Se familiariser avec les tables de conversions, l utilisation de calculateurs hexa et binaire (à télécharger) et également avec les fonctions Excel et Matlab pour la conversion de nombre entiers positifs (non signées) d une base à l autre. Pour Excel DECBIN, DECHEX, HEXDEC, etc. Selon la version linguistique d Excel ces noms peuvent différer (en anglais ils sont DECBIN, DECHEX, etc.). En cas de doute les trouver en sélectionnant la barre de fonction (icône fx) : Pour Matlab les fonctions se nomment decbin, dechex, hexdec, bindec, etc.. Convertir par calcul manuel les chiffres décimales suivantes en nombres binaires 16 bits, puis en hexadécimales. Vérifier ensuite à l aide d Excel, Matlab ou d une machine à calculer.. Décimal Binaire Hexadécimal 398 4995 5
Page Exemple 398 398 16464 16464 83 83 4116 4116 58 58 Résultat : 111 19 18 1 514 514 57 56 18 1 18 64 64 3 3 16 16 8 8 4 4 1 1 3. Convertir par calcul manuel les nombres hexadécimaux suivantes en nombres binaires sur 16 bits, puis en décimaux. Hexadécimal Binaire Décimal A3 5E31 8F5A
Page 3 Nom... Prénom :... MICROINFORMATIQUE, MUI-B 9. FORMAT DES NOMBRES.1 DONNÉE Conversion à la main de nombres entiers d une base à une autre puis vérification à l aide d une machine à calculer ou de Matlab.. QUESTIONS.. Conversion de nombres entiers signés...1 Convertir en binaire sur 8 bit : 1, 3,... Trouver le complément à sur 16 bits des nombres suivants : 4BA8h, 5E31h, 8F5Ah donner l équivalent décimal des nombres négatifs trouvés....3 Convertir le nombre décimal entier signé -198 en un nombre hexadécimal sur 16 bits. Autres cas à calculer: 31, 353, 1765..3 Conversion de nombres fractionnaires signés..3.1 Exprimer sur 16 bits, avec un maximum de précision le nombre fractionnaire 3.16347734375. Indiquer le nombre de bits après la virgule. Autres cas à calculer: 1.56, 5.67,,4..3. Exprimer les nombres 1.76945 et 9.19573 en binaire puis en hexadécimal avec le meilleur format pour chacun d eux (format donnant le maximum de
Page 4 précision en binaire). Rép. : Le premier nombre s exprime en format.14 : 1.76945 (1.1111111b) 6E86h Le second nombre s exprime en format 5.11 : 9.19573 (11.111b) 499h..3.3 Soit deux nombres en format n.m, avec n nombre de bits de la partie entière et m nombre de bits de la partie fractionnaire. Si n=3 et m=13, déterminer la plage des nombres signés représentables dans ce format...3.4 Démontrer que ne nombre fractionnaire,4 devient périodique en binaire...4 Conversion de nombres en virgule flottante Faire tous les exercices suivants et vérifier chaque fois à l aide des applets...4.1 Convertir 18.75 en nombre binaire à virgule flottante à 3 bits. 18 11b.75.11b 1.75 11.11b On décale la virgule jusqu'au premier bit (le plus à gauche) valant 1. Déplacer la virgule à gauche revient à diviser le nombre par : 11.11b = 1.111b Par conséquent, on peut définir chaque terme de la représentation ANSI-IEEE 754 3 bits en virgule flottante. Signe: Négatif Exposant: 4 Mantisse: 111 Et par conséquent Signe = 1 Exposant = 4 + 17 111b Mantisse = 1 11 b Donc, -18.75 en nombre binaire à virgule flottante à 3 bits vaut : 11 1 11 11 b C196h Le signe est défini comme: positif =, négatif = 1. ATTENTION : Le nombre en virgule flottante, positif ou négatif, n'est JAMAIS stocké en complément à. Pour obtenir l'exposant: ajouter 17 = 7Fh (111 1111b) pour un nombre de 3 bits, et 13 = 3FFh (11 1111 1111b) pour un nombre de 64 bits. Pour obtenir la mantisse, garder seulement les bits qui suivent la virgule et compléter à droite avec des zéros. Autres cas à calculer 55,5,65 4
Page 5..4. Convertir le nombre hexadécimal à virgule flottante sur 3 bits 3E34 en nombre décimal. Recherche de la valeur binaire du nombre exprimé en hexadécimal: 3E 34 11 111 11 1 On peut identifier chaque termes du format ANSI-IEEE 754 3 bits. Signe = Exposant = 111 11 Mantisse = 11 1 On peut donc, par décodage, écrire : Signe = Positif Exposant = 7Ch 7Fh = -3h = -11b Mantisse = 111b Puis le nombre peut être reconstruit 111b + 111 1b 11b =.1111b 3 + 5 + 6 + 8 =.1757815 Par conséquent, le nombre à virgule flottante sur 3 bits 3E34 h vaut.1757815 en décimal. Lors de la reconstruction du nombre, s'il est normalisé (comme dans la grande majorité des cas; voir la définition des nombres à virgule flottante) il faut ajouter "1" à gauche de la mantisse. Il faut ensuite soustraire 7Fh à l'exposant pour un nombre de 3 bits, et 3FFh pour un nombre de 64 bits. Autres cas à calculer: 44D7A4h, 4587Bh..5 Questions d ordre général..5.1 Parmi les nombres décimaux signes suivants, quels sont ceux représentables sur 8 bits, 16 bits ou 3 bits a) 64 b) -413 c) -1641 d) -475 e) 5968..5. Exprimer les nombres suivant en hexadécimal dans le format optimal (16 bits) a).64 b) -4.13 c) -16.41 d) -4.75 e) 59.68
Page 6 3. ADDITION ET SOUSTRACTION 3.1 DONNÉE Effectuer, à la main, les additions et soustractions proposées et vérifier les résultats à l aide d un calculateur hexa/binaire ou de Matlab. 3. QUESTIONS 3..1 Addition de deux nombres de 16 bits Additionnez en binaire (ou hexadécimal) les nombres signés sur 8 bits suivants, ici exprimé en forme décimale. Donnez dans tous les cas le résultat en binaire et hexadécimal. Indiquez s il y a débordement (et donc le résultat devient faux) sur 8 bits. + 1 =? 5 45 =? 9 + 45 =? 3.. Addition de deux nombres de 16 bits 3...1 Additionner en binaire les deux nombres signés ci-dessous et vérifier que le résultat soit un nombre signé sur 16 bits. 3A6h + xc1bh 3... Additionner en hexadécimal les deux nombres signés ci-dessous et vérifier que le résultat soit un nombre signé sur 16 bits. 3A6h + C1Bh 3..3 Effectuer les opérations en binaire et/ou hexadécimal (complément à, 16 bits) et indiquer s'il y a débordement dans les cas suivants 5A3h + 6A38h = 386h 7h = 38A3h + A33h = C839h 7h = 3..4 Effectuer les opérations en hexadécimal (complément à ) en deux opérations de 16 bit. Indiquer la valeur du bit de report (carry) 3A3 45ADh + 4A38 A345h = 386 AD14h 7 1DE6h = 38A3 BCBh + A33 8456h = C839 DA56h 7 DF1h =
Page 7 4. MULTIPLICATIONS 4.1 DONNÉE Effectuer, à la main, les multiplications proposées et vérifier les résultats à l aide de Matlab. 4. QUESTIONS 4..1 Effectuer les opérations en binaire (complément à, 8 bits, résultat sur 16 bits), donnez le résultat en hexadécimal. 4..1.1 1 (Ah) 11 (Bh) =? (multiplicande et multiplicateur positifs) 4..1. 35 * (-43) =? (multiplicande positif et multiplicateur négatif) 4..1.3-6 * 13 =? (multiplicande négatif et multiplicateur positif) 4.. Effectuer les opérations en hexadécimal (complément à, 16 bits, résultat sur 3 bits) 4...1 5A3h 6A38h =? (multiplicande et multiplicateur positifs) 4... A33h 38A3h =? (multiplicande négatif et multiplicateur positif) Vérifier d abord si le multiplicande est bien négatif. Combien vaut le résultat en décimal? Autre cas à calculer: multiplication de deux nombres de 8 bits A5h * 7Ch =? 4...3 38A3h A33h =? (multiplicande positif et multiplicateur négatif?)
Page 8 4..3 Réaliser le produit de deux nombres fractionnaires sur 16 bits 4..3. Réaliser à la main le produit des nombres 1.76945 et 9.19573 (voir exercice..3.) en hexadécimal et donner le format du résultat correspondant aux produits des formats des deux nombres (mot de 3 bits). Donner la valeur du résultat en binaire. Rép. : = 1F8818B6h = 1111. 1443 1111111111 144444 44444 3 15.7658135949145