Vous êtes sur la page 1sur 3

Architecture des ordinateurs - TD 01

16 septembre 2014

1 Conversions de base

1. Convertissez les nombres d´ecimaux suivants en binaire :

255 10 , 104 10 , 2010 10

Solution: 255 10 = 11111111 2 104 10 = 1101000 2 2010 = 11111011010 2

2. Convertissez les nombres d´ecimaux suivants en base 5 :

250 10 , 78 10 , 33 10 , 622 10 ,

Solution: 250 10 = 2000 5 78 10 = 303 5 33 10 = 113 5 622 10 = 4442 5

3. Convertissez les nombres suivants en d´ecimal :

1234 5 , 1234 7 , 1234 9

Solution: 1234 5 = 194 10 1234 7 = 466 10 1234 9 = 922 10

4. Convertissez les nombres binaires suivants en hexad´ecimal puis en octal :

110 2 , 1011 2 , 11110101100 2 , 1100000011011110 2

Solution: 110 2 = 6 16 = 6 8 1011 2 = B 16 = 13 8 1100000011011110 2 = C0DE 16 = 140336 8 11110101100 2 = 7AC 16 = 3654 8

5. Convertissez les nombres hexad´ecimaux suivants en d´ecimal :

400 16 , FFF 16 , 7FF 16 , A000 16

Solution: 400 16 = 1024 10 FFF 16 = 4095 10 7FF 16 = 2047 10 A000 16 = 40960 10

6. Quel est le plus grand entier positif codable sur 9 bits en binaire ? Combien faut-il de chiffres pour l’´ecrire en octal ? Et en hexad´ecimal ?

2

Additions et Multiplications en binaire

1. Additionnez les entiers positifs suivants directement en binaire, indiquez les cas qui produisent un overflow de la repr´esentation 8 bits :

00101001 2 + 11001010 2 10101011 2 + 11001010 2 11111111 2 + 11111111 2

Solution: 00101001 2 (41 10 ) + 11001010 2 (202 10 ) = 11110011 2 (243 10 ).

10101011 2 (171 10 ) + 11111111 2 (255 10 ) +

11001010 2 (202 10 ) = 101110101 2 (303 10 ) le r´esultat produit un overflow. 11111111 2 (255 10 ) = 111111110 2 (510 10 ) le r´esultat produit un overflow.

2. Multipliez les entiers positifs suivants, indiquez les cas qui produisent un overflow de la repr´esen- tation 8 bits :

00001001 2 × 00001010 2 10101011 2 × 11001010 2

Solution: 00001001 2 (9 10 ) × 00001010 2 (10 10 ) = 01011010 2 (90 2 ). 10101011 2 (171 10 ) × 11001010 2 (202 10 ) = 1000011011101110 2 (34542 10 ) le r´esultat produit un overflow.

3. Quelle est l’entier le plus grand repr´esentable sur n bits ?

Solution: 2 n 1

4. Additionnons un entier x cod´e en n bits et un entier y cod´e en m bits, avec n m, sur combien de bits faut-il coder le r´esultat pour ´eviter un overflow ?

Solution: Supposons sans perte de g´en´eralit´e que n m. Prenons x max = 2 n 1 et y max =

2 m 1. Or x + y x max + y max = 2 n + 2 m 2 = 2 n .(1 + 2 mn 2 1n ) n + 1 = max(n, m) + 1 bits.

< 2 n .2, il faut donc

5. Soit un entier x cod´e en n bits et un entier y cod´e en m bits avec n m. Montrez que n + m bits suffisent pour repr´esenter x × y. (Bonus plus difficile : montrez que le r´esultat ne peut pas ˆetre cod´e sur n + m 1 bits si m 2.

Solution: Prenons x max = 2 n 1 et y max = 2 m 1. Or x × y x max ×y max = 2 n+m 2 n 2 m + 1 < 2 n+m , il faut donc au maximum n + m bits. Montrons que l’on ne peut pas coder le r´esultat en n + m 1 bits, soit 2 n+m 2 n 2 m + 1 >

2 n+m1 .

On sait 2 n + 2 m 2 n + 2 n 2 n+1 2 n+m1 car n m 2.

2 n + 2 m + 2 n+m1 2 n+m1 + 2 n+m1 2 n + 2 m + 2 n+m1 2 n+m 2 n + 2 m + 2 n+m1 1 < 2 n+m

3 Repr´esentation des binaires cod´es en d´ecimal

1. Donnez la repr´esentation en binaire cod´e en d´ecimal des nombres suivants :

89

2048

1984

2

Solution: 89 = 10001001

2048

= 0010000001001000

1984

= 0001100110000100

2. Donnez la valeur d´ecimale des nombres cod´es en binaire suivants :

01000010, 0010000000010001, 010100010010

Solution: 01000010 = 42 0010000000010001 = 2011 010100010010 = 512

3. Estimez la rapport entre le nombre de bits n´ecessaires pour coder un nombre en binaire et en binaire cod´e d´ecimal. Rappel de cours : pour coder l’entier N , il faut log b (N + 1) bits en base b. Quel est la repr´esentation la plus compacte ?

Solution: Binaire : Il faut log 2 (n + 1) bits. BCD : Il faut 4 log 10 (n + 1) bits. En applicant la formule log b (n) = ln(n)/ln(b) `a ces ´equations, on obtient alors un ratio d’environ 4 ln(2)/ln(10), soit autour de 1, 2.

4 Repr´esentation en virgule fixe

Dans la repr´esentation en virgule fixe, un nombre d´ecimal s’´ecrit avec n chiffres pour la partie enti`ere et q chiffres pour la partie fractionnaire. Voici quelques nombres d´ecimaux lorsque n = 2 et q = 3 :

12, 345, 05, 217.

1. Arrondissez les rationnels suivants `a la valeur d´ecimale la plus proche en virgule fixe (n = 2 et q = 3) : 1/3 15/7

Solution: 0, 333 2, 143

2. Quelle est l’erreur maximale obtenue lors d’un arrondi dans la repr´esentation d´ecimale en virgule fixe (n,q) ?

Solution: 0.5 × 10 q

3. Quel est le r´esultat de l’op´eration suivante : dans les r´eels ? en virgule fixe (n = 2 et q 0, 14 × 0, 99

= 3) ?

Solution: 0, 1386 0, 139

3