NSY104 Architectures des systèmes informatiques 2009-2010 TD N 1 1. Numérotation en base 2 Donner la représentation binaire des nombres suivants (expliquer) : - 403-2009 - 100-22 - 0-1 - 128 Pour donner la représentation en binaire d un nombre décimal, on divise par 2 jusqu'à obtenir un reste qui est 0 ou 1 : 403 2 1 201 2 1 100 2 0 50 2 0 25 2 1 12 2 0 6 2 Sens de la lecture 0 3 2 1 1 Le résultat est formé par les restes pris dans le sens de la lecture. Le résultat pour 403 est donc : 110010011 En procédant de même pour les autres valeurs, on obtient : 2009 => 11111011001 100 => 1100100 22 => 10110 0 => 0 1 => 1 128 => 10000000
2. Numérotation en base 16 Donner la représentation hexadécimale des nombres suivants (expliquer): - 2-130 - 5049-24567 - 56-76 - 674 Pour donner la représentation hexadécimal d un nombre décimal, on divise par 16 jusqu'à obtenir un reste inférieur a 16 : 24567 16 7 1535 16 F 95 16 F 5 Sens de la lecture Le résultat est formé par les restes pris dans le sens de la lecture. Le résultat pour 24567 est donc : 5FF7 En procédant de même pour les autres valeurs, on obtient : 2 => 2 h 130 => 82 h 5049 => 13B9 h 56 => 38 h 76 => 4C h 674 => 2A2 h 3. Conversion Donner la représentation en hexadécimal des nombres suivants : - 1010 0000-1001 1000 1111-0101 1011 1010 1001 Donner la représentation en binaire des nombres suivants : - 23D2-2134 - 3E5A
Pour effectuer des conversions entre des valeurs binaires et hexadécimales, il est nécessaire de connaître (par cœur) le tableau suivant : DECIMAL BINAIRE HEXADECIMAL 0 0000 0 h 1 0001 1 h 2 0010 2 h 3 0011 3 h 4 0100 4 h 5 0101 5 h 6 0110 6 h 7 0111 7 h 8 1000 8 h 9 1001 9 h 10 1010 A h 11 1011 B h 12 1100 C h 13 1101 D h 14 1110 E h 15 1111 F h La conversion devient alors immédiate : - 1010 0000 => A0 h - 1001 1000 1111 => 98F h - 0101 1011 1010 1001 => 5BA9 h - 23D2 => 0010 0011 1101 0010-2134 => 0010 0001 0011 0100-3E5A => 0011 1110 0101 1010 4. Complément à 2 Donner le complément à 2 des nombres suivants : - 1001 0001-1010 0100-1111 0011
Pour convertir une valeur binaire en complément à 2, on inverse les bits et on ajoute 1 : 1001 0001 => inversion des bits => 0110 1110 = Ajout de 1 => 0110 1111 1010 0100 => inversion des bits => 0101 1011 = Ajout de 1 => 0101 1100 1111 0011 => inversion des bits => 0000 1100 = Ajout de 1 => 0000 1101 5. Additions en base 2 Effectuer les additions suivantes : - 1001 0011 + 1001 0000-1000 1111 + 0101 1111-1001 1000 + 0100 0000 On procède de la même façon qu en décimal : 1000 1 1 1 1 1 1 1 1 + 0101 1 1 1 1 1110 1 1 1 0 En procédant de même pour les autres valeurs, on obtient : 1001 0011 + 1001 0000 = 1 0010 0011 1000 1111 + 0101 1111 = 1110 1110 1001 1000 + 0100 0000 = 1101 1000 6. Représentation de nombres négatifs Donner les valeurs binaires des nombres suivants (codés 8 bits) et de leurs opposés : - 34-128 - 74-1004 Pour cet exercice, on commence par représenter les nombres en binaire en utilisant la méthode vu au premier exercice. En effectue ensuite le complément à 2 pour chaque nombre. On n oublie pas que le résultat doit tenir sur 8 bits : 34 => binaire : 0010 0010 => -34 en complément à 2 : 1101 1110 128 => binaire : 1000 0000 => - 128 en complément à 2 : 1000 0000 74 => binaire : 0100 1010 => -74 en complément à 2 : 1011 0110 1009 => Pas de représentation possible sur 8 bits
7. Soustractions en base 2 Effectuer les opérations suivantes en binaire (développer) : 34 12 21 56 32 2 Tip : une soustraction peut être considérée comme une addition Une soustraction peut être effectuée comme une addition si l on représente le nombre négatif en complément à 2 : 34 => binaire : 0010 0010 12 => binaire : 0000 1100 => le complément à 2 de 12 représente 12 : 1111 0100 On addition donc la valeur 0010 0010 (34) et la valeur 1111 0100 qui est le complément a 2 de 12 de la même manière que l on a effectué l addition dans l exercice précédent : 0010 0010 + 1111 0100 = 1 0001 0110 soit neuf bits. Comme nous avons figé le format sur 8 bits, le bits de gauche est annulé, donc le résultat est 0001 0110 ce qui réprésente la valeur décimal de 22. En procédant de même pour les autres valeurs on obtient : 21 56 = 0001 0101 1100 1000 = 0001 0101 + 0011 1000 (C à 2) = 1101 1101 Ici le résultat est négatif (bit de gauche à 1). Il faut effectuer son complément à 2 pour obtenir la valeur exacte : 1101 1101 => complément à 2 : 0010 0011, soit 35. 32 2 = 0010 0000 0000 0010 = 0010 0000 + 1111 1110 (C à 2) = 1 0001 1110. Dépassement du format 8 bits, on ne tient pas compte du bit de gauche, le résultat est donc : 0001 1110, c est un nombre positif, soit 30. 8. Multiplications en base 2 Effectuer les opérations suivantes en binaire (développer): - 34 x 12-2 x 8-10 x 20
On commence par représenter les nombres en binaires et on effectue la multiplication comme en décimal : 34 x 12 : 10 0010 (34) x 1100 00 0000 + 00 0000. + 10 0010.. + 10 0010 = 1 1001 1000 = 408 On remarque que le chiffres 0 du multiplicateur génère des lignes de 0 dans l addition, on peut alors procéder comme indiqué dans le cours en utilisant des registres a décalage. On décale le multiplicateur vers la droite jusqu'à obtenir un nombre égale à 1 et parallèlement on décalage vers la gauche le nombre à multiplier : 34 : 12 : 10 0010 1100 100 0100 110 1000 1000 11 1 0001 0000 1 On ne retient alors que les lignes dont le multiplicateur (divisé par 2 a chaque fois) est impair, ici les deux dernières lignes. On additionne les correspondances et cela nous donne le résultat : 1000 1000 + 1 0001 0000 = 1 1001 1000 = 408 En procédant de même pour les autres valeurs on obient : 2 x 8 : 2 : 8 : 10 1000 100 100 1000 10 1 0000 1 La seul ligne à prendre est la dernière, le résultat est donc 1 0000 soit 16. 10 : 20 : 1010 10100 1 0100 1010 10 1000 101 101 0000 10 1010 0000 1
Ici, il y a deux lignes dont le multiplicateur (divisé par 2) est impair, il faut donc additionner les deux pour connaître le résultat : 10 1000 + 1010 0000 = 1100 1000 soit 200.