TD 1
Transcription
TD 1
DUT Informatique Architecture des ordinateurs Année 2012/2013 TD 1 - Échauffement - 1 Numérations et changements de base Écriture en base b La valeur décimale A10 d’un nombre Ab = an . . . a2 a1 a0 écrit en base b est donnée par : A10 = n X ai × bi i=0 = an × bn + an−1 × bn−1 + · · · + a2 × b2 + a1 × b1 + a0 × b0 = an bn + an−1 bn−1 + · · · + a2 b2 + a1 b + a0 = a0 + b × (a1 + b × (a2 + b × (. . . an−1 + b × (an ) . . . ))). Les ai sont les chiffres de l’écriture en base b ; leur valeur est comprise entre 0 et b − 1. Bases spéciales En informatique, on utilise généralement les 3 bases suivantes : – La base 2, ou binaire : les seuls chiffres sont 0 et 1, par exemple : 10112 = 1011b – La base 10, ou décimale : attention, les nombres décimaux sont fréquemment écrits en omettant la base (rien ne les distingue de nombre écrits dans une autre base). – La base 16, ou hexadécimale : les chiffres sont 0, 1, . . . , 9, A, B, C, D, E, F ; les nombres hexadécimaux peuvent être notés de différentes manières : ABC16 = 0xABC = ABCh Exemples – en base 10 : 174710 = 1 × 103 + 7 × 102 + 4 × 101 + 7 × 100 = 1000 + 700 + 40 + 7 = 174710 . – en base 2 : 1000100012 = 28 + 24 + 20 = 256 + 16 + 1 = 27310 . – en base 8 : 17478 = 1 × 83 + 7 × 82 + 4 × 8 + 7 = 512 + 448 + 32 + 7 = 99910 . – en base 16 : 3E716 = 3 × 162 + E × 16 + 7 = 3 × 256 + 14 × 16 + 7 = 768 + 224 + 7 = 99910 . Exercice 1.1. Parmi les nombres suivants, quels sont ceux qui peuvent être écrits en binaire ? En décimal ? En hexadécimal ? ABC 789 7B9 1000b 1 102002 GAF F E 0x789 1011 100010 binaire décimal hexadécimal Exercice 1.2. Écrire une table de conversion binaire/décimal/hexadécimal pour les 16 premiers nombres et la liste des puissances de 2 jusqu’à 212 . Exercice 1.3. Conversions 1. Comment convertir un nombre binaire en base 10 ? 2. Et dans l’autre sens (décimal vers binaire) ? 3. Mêmes questions entre les nombres décimaux et hexadécimaux. 4. Remplir le tableau suivant en effectuant les conversions nécessaires. binaire décimal hexadécimal 10 1101010 16 255 31 100 7B9A Exercice 1.4. Déduire de l’exercice précédent une méthode “simple” pour effectuer les conversions binaire ↔ hexadécimal. Convertir 9F 5BC416 en binaire et 110 1101 1000 0010 11102 en hexadécimal. Exercice 1.5. Nombres à virguleF La valeur décimale d’un nombre binaire 0, d1 d2 d3 . . . dn est donnée par : d21 + d42 + d83 + · · · + d2nn . Pour convertir un nombre décimal à virgule en binaire, on distingue la partie entière du nombre (les chiffres à gauche de la virgule) et sa partie fractionnaire (les chiffres après la virgule). Ensuite, on procède en 2 étapes : on commence par convertir la partie entière comme d’habitude, puis on traite la partie fractionnaire avec l’algorithme suivant : tant que la partie fractionnaire n’est pas nulle, faire la multiplier par 2 garder la partie entière obtenue recommencer avec la nouvelle partie fractionnaire Exemple pour 0, 125 : 0, 125 × 2 = 0, 250 → on garde 0 et on continue avec 0,250 0, 25 × 2 = 0, 50 → on garde 0 et on continue avec 0,50 0, 5 × 2 = 1, 0 → on garde 1 et on s’arrête car la partie fractionnaire est 0 Résultat : 0, 125 = 0, 0012 . 1. Convertir 42, 3437510 en binaire. 2. Expliquer pourquoi ça marche. 3. Convertir 68, 710 en binaire. Que remarque-t-on ? 4. Comment faire la conversion dans l’autre sens ? 5. Convertir le nombre binaire 10, 0101 en décimal. 2 Arithmétique binaire (ou les rappels de l’école primaire...) Exercice 2.1. Réaliser les opérations binaires suivantes (convertir en base 10 pour vérifier) : • 1000 + 0010 • 1101000 + 10110 • 1001000 + 1011001 Que se passe-t-il si on ne dispose que de 7 bits ? • 101101 - 10100 • 10100 - 1111 • 1100000001 × 10110111 • 1100101010 / 1001 • 101010 / 101 Exercice 2.2. Donner une méthode rapide pour multiplier un nombre binaire par 2. Et pour multiplier par 2k ? Et pour diviser ? Page 2