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