David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 T.D

David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 T.D. 1 – Corrigé Systèmes de numération entière Exercice 1 Représentez le nombre 24810 dans les bases 2, 3, 8, 9 et 16. (Utilisez la technique des divisions successives pour les bases 2, 3 et 16.) • Base 2 248 / 2 = 124 reste 0 124 / 2 = 62 reste 0 62 / 2 = 31 reste 0 31 / 2 = 15 reste 1 15 / 2 = 7 reste 1 7 / 2 = 3 reste 1 3 / 2 = 1 reste 1 1 / 2 = 0 reste 1 → 24810 = 111110002 • Base 3 248 / 3 = 82 reste 2 82 / 3 = 27 reste 1 27 / 3 = 9 reste 0 9 / 3 = 3 reste 0 3 / 3 = 1 reste 0 1 / 3 = 0 reste 1 → 24810 = 1000123 • Base 8 On peut s’aider de la représentation binaire en regroupant les chiffres par paquets de trois (23 = 8). 24810 = 11 111 0002 → 24810 = 3708 • Base 9 On peut s’aider de la représentation en base 3 en regroupant les chiffres par paquets de deux (32 = 9). 24810 = 10 00 123 → 24810 = 3059 • Base 16 248 / 16 = 15 reste 8 15 / 16 = 0 reste 15 → 24810 = F816 T.D. 1 – Corrigé 1/5 David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 Exercice 2 Représentez les nombres 2810, 12910, 14710, 25510 sous leur forme binaire par une autre méthode que les divisions successives. À partir de cette représentation binaire, vous en déduirez leur représentation hexadécimale. À partir de la valeur des différents poids binaires, et en commençant par le poids le plus fort, on posi- tionne les bits à 0 ou à 1 en fonction de la somme de leur poids. 128 64 32 16 8 4 2 1 2810 → 0 0 0 1 1 1 0 0 12910 → 1 0 0 0 0 0 0 1 14710 → 1 0 0 1 0 0 1 1 25510 → 1 1 1 1 1 1 1 1 Le passage d'une représentation binaire (base 2) vers une représentation hexadécimale (base 16) s'obtient assez facilement en regroupant les bits par paquets de quatre (24 = 16) ; chaque paquet de quatre bits cor- respond à un chiffre hexadécimal. 2810 = 0001 11002 = 1C16 12910 = 1000 00012 = 8116 14710 = 1001 00112 = 9316 25510 = 1111 11112 = FF16 Exercice 3 1. Les nombres 110000102, 100101002, 111011112, 100000112, 101010002 sont-ils pairs ou impairs ? Les nombres pairs se terminent par au moins un zéro : 110000102, 100101002, 101010002 2. Lesquels sont divisibles par 4, 8 ou 16 ? • Les nombres divisibles par 4 se terminent par au moins deux zéros : 100101002, 101010002 • Les nombres divisibles par 8 se terminent par au moins trois zéros : 101010002 • Les nombres divisibles par 16 se terminent par au moins quatre zéros : Aucun nombre. 3. Donnez le quotient et le reste d’une division entière par 2, 4 et 8 de ces nombres. 11000010 10010100 11101111 10000011 10101000 quotient reste quotient reste quotient reste quotient reste quotient reste /2 1100001 0 1001010 0 1110111 1 1000001 1 1010100 0 /4 110000 10 100101 00 111011 11 100000 11 101010 00 /8 11000 010 10010 100 11101 111 10000 011 10101 000 T.D. 1 – Corrigé 2/5 David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 4. En généralisant, que suffit-il de faire pour obtenir le quotient et le reste d’une division entière d’un nombre binaire par 2n ? • Pour le quotient : il faut réaliser un décalage de n bits vers la droite du nombre. • Pour le reste : il faut réaliser un ET logique de 2n-1 avec le nombre. Les décalages et les opérations logiques sont nettement plus rapides à réaliser pour un microproces- seur que l’opération de division. 5. Si l'on souhaite multiplier un nombre binaire quelconque par une puissance de 2, quelle méthode peut-on utiliser afin d'éviter la multiplication ? Un décalage logique d’un seul bit vers la gauche est équivalent à une multiplication par 2. Ainsi, un décalage logique de n bits vers la gauche est équivalent à une multiplication par 2n. 6. Si l'on souhaite multiplier un nombre binaire quelconque par 3 ou par 10, quelle méthode peut-on uti- liser pour éviter la multiplication ? • 3n = 2n + n Sous cette forme, il apparaît une multiplication par 2 (équivalente à un décalage d’un bit vers la gauche) et une addition. • 10n = 8n + 2n Sous cette forme, il apparaît une multiplication par 8 (équivalente à un décalage de 3 bits vers la gauche), une multiplication par 2 (équivalente à un décalage d’un bit vers la gauche), et une addi- tion. Si le multiplicateur est connu, on peut le décomposer de sorte à n’avoir comme opérations que des décalages et des additions. Ces dernières sont beaucoup plus rapides à réaliser pour un microproces- seur que la multiplication. Exercice 4 Donnez les valeurs décimales, minimales et maximales, que peuvent prendre des nombres signés et non signés codés sur 4, 8, 16, 32 et n bits. Bits Non Signés Signés 4 0 →15 -8 →7 8 0 →255 -128 →127 16 0 →65535 -32768 →32767 32 0 →232 - 1 -231 →231 - 1 n 0 →2n - 1 -2n-1 →2n-1 - 1 T.D. 1 – Corrigé 3/5 David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 Exercice 5 Soit les deux nombres binaires suivants : 111111112 et 101101102. 1. Donnez leur représentation décimale s'ils sont codés sur 8 bits signés. • 111111112 Sur 8 bits signés, le bit de poids fort vaut 1 : le nombre est négatif. On effectue son complément à 2 puis on convertit le résultat en décimal : (111111112)C2 = 000000002 + 12 = 12 = 1 La représentation décimale est donc de -1. • 101101102 Sur 8 bits signés, le bit de poids fort vaut 1 : le nombre est négatif. On effectue son complément à 2 puis on convertit le résultat en décimal : (101101102)C2 = 010010012 + 12 = 010010102 = 64 + 8 + 2 = 74 La représentation décimale est donc de -74. 2. Donnez leur représentation décimale s'ils sont codés sur 16 bits signés. • 111111112 Sur 16 bits signés, le bit de poids fort vaut 0 (00000000111111112) : le nombre est positif. On effectue une simple conversion binaire-décimal : 111111112 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 La représentation décimale est donc de +255. • 101101102 Sur 16 bits signés, le bit de poids fort vaut 0 (00000000101101102) : le nombre est positif. On effectue une simple conversion binaire-décimal : 101101102 = 128 + 32 + 16 + 4 + 2 = 182 La représentation décimale est donc de +182. Soit le nombre entier négatif suivant : -8010. 3. On souhaite le coder sur 8 bits signés. Donnez sa représentation binaire et sa représentation hexadéci- male. On convertit sa valeur absolue en binaire : 8010 = 010100002 On effectue son complément à 2 : (010100002)C2 = 101011112 + 12 = 101100002 Ce qui donne : 101100002 en binaire. B016 en hexadécimale. T.D. 1 – Corrigé 4/5 David Bouchet – Architecture des ordinateurs – EPITA – Info-Spé – 2012/2013 4. On souhaite le coder sur 16 bits signés. Donnez sa représentation binaire et sa représentation hexadé- cimale. Une simple extension de signe suffit pour passer de 8 bits à 16 bits signés. Ce qui donne : 11111111101100002 en binaire. FFB016 en hexadécimale. Exercice 6 1. Donnez, en puissance de deux, le nombre de bits que contiennent les grandeurs suivantes : 128 Kib, 16 Mib, 2 Kio, 512 Gio. On sait que : • 1 Ki = 210 ; 1 Mi = 220 ; 1 Gi = 230. • 1 octet = 8 bits = 23 bits. On a donc : • 128 Kib = 27 × 210 bits = 217 bits. • 16 Mib = 24 × 220 bits = 224 bits. • 2 Kio = 21 × 210 octets = 21 × 210 × 23 bits = 214 bits. • 512 Gio = 29 × 230 octets = 29 × 230 × 23 bits = 242 bits. 2. Donnez, à l'aide des préfixes binaires (Ki, Mi ou Gi), le nombre d'octets que contiennent les gran- deurs suivantes : 2 Mib, 214 bits, 226 octets, 232 octets. Vous choisirez un préfixe qui permet d'obtenir la plus petite valeur numérique entière. • 2 Mib = 21 × 220 bits = 21 × 220 / 23 octets = 218 octets = 28 × 210 octets = 256 Kio. • 214 bits = 214 / 23 uploads/Litterature/ td-01-corrige.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager