Vous êtes sur la page 1sur 8

Architecture des Ordinateurs, corrigé TD 1

Numération élémentaire
Exercice 1. Calculer 28 , 29 , 210 , 215 , 216 , 232 .

Correction.

28 = 27 × 2 = 128 × 2 = 256
29 = 28 × 2 = 256 × 2 = 512
210 = 28 × 22 = 256 × 4 = 1024
215 = 210 × 25 = 1024 × 32 = 32768
216 = 215 × 2 = 32768 × 2 = 65536
232 = 216 × 216 = 65536 × 65536 = 4294967296

Exercice 2. Convertir en binaire, puis en octal, et enfin en héxadécimal les nombres


suivants : 100, 127, 128, 256, 1000, 1023, 1024, 10000.

Correction. La méthode des divisions successives par deux est longue et fasti-
dieuse. . . On lui préférera la méthode des approximations successives par les puis-
sances de deux.

• Conversion de 100 :
64 ≤ 100 < 128 donc reste 100 − 64 = 36
32 ≤ 36 < 64 donc reste 36 − 32 = 4
4≤4<8 donc reste 4−4=0

Par conséquent 100 s’écrit en binaire 11001002 , 1448 en octal, 6416 en héxadécimal.

• Conversion de 127 :
64 ≤ 127 < 128 donc reste 127 − 64 = 63
32 ≤ 63 < 64 donc reste 63 − 32 = 31
16 ≤ 31 < 32 donc reste 31 − 16 = 15
8 ≤ 15 < 16 donc reste 15 − 8 = 7
4≤7<8 donc reste 7−4=3
2≤3<4 donc reste 3−2=1
1≤1<2 donc reste 1−1=0

Par conséquent 127 s’écrit en binaire 11111112 , 1778 en octal, 7F16 en héxadécimal.

• Conversion de 128 : 128 = 27 donc un bit à un suivi de 7 zéros : 100000002


en binaire, 2008 en octal, 8016 en héxadécimal.
Remarque : 127 = 128 − 1, or 128 = 27 donc un bit à un suivi de 7 zéros.

1
• Conversion de 256 : 256 = 28 donc un bit à un suivi de 8 zéros : 1000000002
en binaire, 4008 en octal, 10016 en héxadécimal.

• Conversion de 1000 :
512 ≤ 1000 < 1024 donc reste 1000 − 512 = 488
256 ≤ 488 < 512 donc reste 488 − 256 = 232
128 ≤ 232 < 256 donc reste 232 − 128 = 104
64 ≤ 104 < 128 donc reste 104 − 64 = 40
32 ≤ 40 < 64 donc reste 40 − 32 = 8
8 ≤ 8 < 16 donc reste 8−8=0

Par conséquent 1000 s’écrit en binaire 11111010002 , 17508 en octal, 3E816 en


héxadécimal.

• Conversion de 1023 : 1023 = 1024 − 1 or 1024 = 210 donc un bit suivi de


10 zéros. Par conséquent 1023 s’écrit en binaire 11111111112 , 17778 en octal,
3F F16 en héxadécimal.

• Conversion de 1024 : 1024 = 210 donc un bit suivi de 10 zéros. Par conséquent
1024 s’écrit en binaire 100000000002 , 20008 en octal, 40016 en héxadécimal.

• Conversion de 10000 :
8192 ≤ 10000 < 16384 donc reste 10000 − 8192 = 1808
1024 ≤ 1808 < 2048 donc reste 1808 − 1024 = 784
512 ≤ 784 < 1024 donc reste 784 − 512 = 272
256 ≤ 272 < 512 donc reste 272 − 256 = 16
8 ≤ 16 < 32 donc reste 16 − 16 = 0

Par conséquent 10000 s’écrit en binaire 100111000100002 , 234208 en octal,


271016 en héxadécimal.

Exercice 3. Convertir en binaire, puis en octal, et enfin en décimal les nombres


suivants : 5A16 , CF BA16 , E10D16 , F F16 , B0016 , F 00016 , F F F F16 .

Correction.
• Conversion de 5A16 : 5A16 s’écrit en 010110102 en binaire, 1328 en octal, enfin
5A16 = 5 × 161 + 10 × 160 = 80 + 10 = 90.

• Conversion de CF BA16 : CF BA16 s’écrit en 11001111101110102 en binaire,


1476728 en octal, enfin CF BA16 = 12 × 163 + 15 × 162 + 11 × 161 + 10 × 160 =
12 × 4096 + 15 × 256 + 11 × 16 + 10 = 49152 + 3840 + 176 + 10 = 53178.

• Conversion de E10D16 : E10D16 s’écrit en 11100001000011012 en binaire,


1604158 en octal, enfin E10D16 = 14 × 163 + 1 × 162 + 0 × 161 + 13 × 160 =
57344 + 256 + 13 = 57613.

• Conversion de F F16 : F F16 s’écrit en 111111112 en binaire, 3778 en octal,


enfin F F16 = 15 × 161 + 15 × 160 = 240 + 15 = 255.

• Conversion de B0016 : B0016 s’écrit en 1011000000002 en binaire, 54008 en


octal, enfin B0016 = 11 × 162 = 11 × 256 = 2816.

2
• Conversion de F 00016 : F 00016 s’écrit en 11110000000000002 en binaire, 1700008
en octal, enfin F 00016 = 15 × 163 = 15 × 4096 = 61440.

• Conversion de F F F F16 : F F F F16 s’écrit en 11111111111111112 en binaire,


1777778 en octal, enfin F F F F16 = 15 × 163 + 15 × 162 + 15 × 161 + 15 × 160 =
15 × 4096 + 15 × 256 + 15 × 16 + 15 = 65535. On peut remarquer que F F F F16
c’est 1000016 − 1 = 65536 − 1 = 65535.

Exercice 4. Soit x une base quelconque,

• montrer que 10101x est un multiple de 111x ;

• exprimer le quotient dans les bases 2, 8, 10, 16.

Correction. Dans la base x, le nombre 10101x s’écrit 1 × x4 + 0 × x3 + 1 × x2 +


0 × x1 + 1 × x0 soit x4 + x2 + 1. le nombre 111x s’écrit 1 × x2 + 1 × x1 + 1 × x1 soit
x2 + x + 1. On montre que x4 + x2 + 1 est un multiple de x2 + x + 1. Pour cela on
considère la division euclidienne de x4 + x2 + 1 par x2 + x + 1 et dans ce cas, en
effectuant la division, on obtient x4 + x2 + 1 = (x2 + x + 1)(x2 − x + 1) :

4 2 2
x + x + 1 | x + x + 1
|___________
4 3 2 | 2
-(x + x + x ) | x - x + 1
______________ |
3 |
- x + 1 |
3 2 |
-(- x - x - x) |
________________ |
2 |
x + x + 1 |
2 |
-(x + x + 1) |
_____________ |
|
0 |

• en base 2 : 22 − 2 + 1 = 3, soit 112

• en base 8 : 82 − 8 + 1 = 57, soit 718

• en base 10 : 102 − 10 + 1 = 91

• en base 16 : 162 − 16 + 1 = 241 soit F 116

3
Nombres signés
Exercice 5. Ecrire les compléments à 1 puis à 2 des nombres binaires suivants :
10101012 , 01110002 , 00000012 , 100002 , 00002 . Commenter. . .

Correction.
Complément à 1 Complément à 2
10101012 01010102 Compl(1)+1 : 01010112
01110002 10001112 Compl(1)+1 : 10010002
00000012 11111102 Compl(1)+1 : 11111112
100002 011112 Compl(1)+1 : 100002
00002 11112 Compl(1)+1 : 100002

Remarquer la quatrième ligne (0 modulo 24 ) et la cinquième ligne (débordement sur


le cinquième bit).

Exercice 6. Quel est l’équivalent décimal des nombres signés suivants 1012 (sur
trois bits), 10112 (sur quatre bits), 001110012 (sur huit bits), 101110012 (sur huit
bits). Etendre la représentation de chacun de ces nombres sur seize bits.

Correction.

• Sur trois bits de représentation 1012 est un nombre négatif. Son complément à
deux est 0102 (complément à un) + 1, soit 0112 (+310 ), donc 1012 vaut −310 .

• Sur quatre bits de représentation 10112 est un nombre négatif. Son complément
à deux est 01002 (complément à un) + 1, soit 01012 (+510 ), donc 10112 vaut
−510 .

• Sur huit bits de représentation 001110012 est un nombre positif dont la valeur
décimale est 25 + 24 + 23 + 20 , soit 5710 .

• Sur huit bits de représentation 101110012 est un nombre négatif. Son complément
à deux est 010001102 (complément à un)+1, soit 010001112 (26 +22 +21 +20 =
+7110 ), donc 101110012 vaut −7110 .

Pour étendre la représentation de chaque nombre sur seize bits, on procède par ex-
tension du bit de signe vers les poids forts, par exemple la représentation de 1012
sur seize bits est donnée par 1111 1111 1111 1101.

Arithmétique des nombres signés


Exercice 7. Effectuer les opérations arithmétiques suivantes sur 6 bits, les nombres
représentés étant signés, puis donner les résultats en décimal :

• 0011102 + 1100102 , 1010112 + 1110002 , 1110012 + 0010102 ;

• 0101012 − 0001112 , 1110012 − 0010102 , 1010112 − 1001102 .

4
Correction.

001110 101011 111001


+ 110010 + 111000 + 001010
________ ________ ________
1000000 1100011 1000011

010101 111001 101011


- 000111 - 001010 - 100110
________ ________ ________
001110 101111 000101

Remarque :

• Un résultat dont le 6ème bit à gauche (bit de poids fort) est à 1, représente en
complément à 2 un entier négatif ;

• Un résultat dont le 6ème bit à gauche (bit de poids fort) est à 0, représente en
complément à 2 un entier positif ;

• Les résultats issus des additions sont donnés sur 7 bits, il y a donc dépassement ;
mais en complément à 2, les entiers sont codés modulo 2n (ici n = 6), et par
conséquent l’équivalent décimal d’un résultat sur 7 bits est égal à l’équivalent
décimal du même résultat sur 6 bits (autrement dit, il suffit d’enlever le 7ème
bit à gauche, bit de poids fort). . .

• les additions :
C2 (1000000) = C2 (000000 modulo 26 ) = 0 sur 6 bits.
C2 (1100011) = C2 (100011 modulo 26 ) = C1 (100011) + 1 = 0011100 + 1 =
0011101 = 24 + 23 + 22 + 20 = +29, donc la valeur en décimal de 100011 (6
bits) est −29.
C2 (1000011) = C2 (000011 modulo 26 ) = 21 + 20 = +3 sur 6 bits.

• les soustractions :
C2 (001110) = 23 + 22 + 21 = +14 sur 6 bits.
C2 (101111) = C1 (101111) + 1 = 010000 + 1 = 010001 = 24 + 20 = +17 donc
la valeur en décimal de 101111 (6 bits) est −17.
C2 (000101) = +5 sur 6 bits.

Exercice 8. Effectuer les opérations arithmétiques suivantes directement en héxadécimal,


puis vérifier le résultat en binaire :

• B7AD16 + 51E016 ;

• 8BA216 + 6A716 ;

• 8BA216 − 6A716 ;

5
Correction.

• Opérations en héxadécimal :

B7AD16 8BA216
+51E016 +6A716
1098D16 924916

• Vérification en binaire :

1011 0111 1010 1101 1000 1011 1010 0010


0101 0001 1110 0000 0110 1010 0111
________________________ ___________________
0001 0000 1001 1000 1101 1001 0010 0100 1001

1 0 9 8 D 9 2 4 9

• 8BA216 − 6A716 : Soustraire, c’est additionner à un nombre son opposé i.e.


son complément à deux. Le complément à deux (sur 16 bits) de 06A716 est
F 95916 . On a alors :
8BA216
+F 95916
84F B16
Il est bien sûr aussi possible d’effectuer directement la soustraction, en tenant
compte du fait que les retenues sont données en base 16. Ainsi dans la soustrac-
tion 8BA216 − 6A716 on commence par enlever (en héxadécimal) 716 de 1216
(qui est l’écriture héxadécimale de 18), il reste donc B16 (écriture héxadécimale
de 11) avec une retenue qui se propage ; on obtient alors (colonne suivante)
116 + A16 = B16 enlevé de 1A16 (c’est-à-dire 11 enlevé de 26) et il reste donc
F16 (écriture héxadécimale de 15) avec une retenue qui se propage ; on obtient
116 + 616 = 716 enlevé de B16 (écriture héxadécimale de 11), il reste donc 416
; enfin, on enlève 016 de 816 et il reste donc 816 . En bref :

8BA216
−6A716
84F B16

Exercice 9. Convertir en binaire en passant par l’héxadécimal :

• −5 sur 16 bits, puis sur 32 bits ;

• −23 sur 32 bits.

Correction. Sur 16 bits :


1000016
−0000516
F F F B16

6
Sur 32 bits :
10000000016 10000000016
−00000000516 −00000001716

F F F F F F F B16 F F F F F F E916

Nombres fractionnaires
Exercice 10. Convertir en binaire, en virgule fixe :

• 0, 48 avec la partie fractionnaire exprimée sur 6 bits ;

• 0, 83 avec la partie fractionnaire exprimée sur 4 bits ;

• 37, 62 avec la partie fractionnaire exprimée sur 8 bits ;

Correction.

• Conversion de 0, 48, partie décimale sur 6 bits :

0, 48 × 2 = 0, 96 → 0
0, 96 × 2 = 1, 92 → 1
0, 92 × 2 = 1, 84 → 1
0, 84 × 2 = 1, 68 → 1
0, 68 × 2 = 1, 36 → 1
0, 36 × 2 = 0, 72 → 0

0, 48 s’écrit 0, 0111102 .

• Conversion de 0, 83, partie décimale sur 4 bits :

0, 83 × 2 = 1, 66 → 1
0, 66 × 2 = 1, 32 → 1
0, 32 × 2 = 0, 64 → 0
0, 64 × 2 = 1, 28 → 1

0, 83 s’écrit 0, 11012 .

• Conversion de 37, 62, partie décimale sur 8 bits :

– Partie entière :
32 ≤ 37 donc reste 37 − 32 = 5
4≤5 donc reste 5−4=1
1≤1 donc reste 1−1=0

donc 37 = 25 + 22 + 20 d’où en binaire 1001012 .

7
– Partie décimale :

0, 62 × 2 = 1, 24 → 1
0, 24 × 2 = 0, 48 → 0
0, 48 × 2 = 0, 96 → 0
0, 96 × 2 = 1, 92 → 1
0, 92 × 2 = 1, 84 → 1
0, 84 × 2 = 1, 68 → 1
0, 68 × 2 = 1, 36 → 1
0, 36 × 2 = 0, 72 → 0

0, 62 s’écrit 0, 100111102 .

37, 62 s’écrit 100101, 100111102 .

Exercice 11. Donner la représentation flottante de 3, 14159 en simple précision


dans la norme IEEE 754.

Correction. 3, 1415910 → 11, 001001002 , soit après normalisation : 1, 1001001002 ×


21 . On a donc :

• 100100100 représente la mantisse (avec 1 significatif implicite)

• 1 représente l’exposant

• l’exposant corrigé en simple précision est 010000000 (128 = 1 + 127).

La représentation flottante de 3, 14159 en simple précision est donc

0 010000000 100100100000000000000000

Vous aimerez peut-être aussi