Vous êtes sur la page 1sur 8

Architecture des Ordinateurs, corrige TD 1

Num
eration
el
ementaire
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 hexadecimal les nombres


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

Correction. La methode des divisions successives par deux est longue et fastidieuse. . . On lui preferera la methode des approximations successives par les puissances de deux.
Conversion de 100 :
64 100 < 128
32 36 < 64
44<8

donc reste
donc reste
donc reste

100 64 = 36
36 32 = 4
44=0

Par consequent 100 secrit en binaire 11001002 , 1448 en octal, 6416 en hexadecimal.
Conversion de 127 :
64 127 < 128
32 63 < 64
16 31 < 32
8 15 < 16
47<8
23<4
11<2

donc
donc
donc
donc
donc
donc
donc

reste
reste
reste
reste
reste
reste
reste

127 64 = 63
63 32 = 31
31 16 = 15
15 8 = 7
74=3
32=1
11=0

Par consequent 127 secrit en binaire 11111112 , 1778 en octal, 7F16 en hexadecimal.
Conversion de 128 : 128 = 27 donc un bit `
a un suivi de 7 zeros : 100000002
en binaire, 2008 en octal, 8016 en hexadecimal.
Remarque : 127 = 128 1, or 128 = 27 donc un bit `
a un suivi de 7 zeros.
1

Conversion de 256 : 256 = 28 donc un bit `


a un suivi de 8 zeros : 1000000002
en binaire, 4008 en octal, 10016 en hexadecimal.
Conversion de 1000 :
512 1000 < 1024
256 488 < 512
128 232 < 256
64 104 < 128
32 40 < 64
8 8 < 16

donc
donc
donc
donc
donc
donc

reste
reste
reste
reste
reste
reste

1000 512 = 488


488 256 = 232
232 128 = 104
104 64 = 40
40 32 = 8
88=0

Par consequent 1000 secrit en binaire 11111010002 , 17508 en octal, 3E816 en


hexadecimal.
Conversion de 1023 : 1023 = 1024 1 or 1024 = 210 donc un bit suivi de
10 zeros. Par consequent 1023 secrit en binaire 11111111112 , 17778 en octal,
3F F16 en hexadecimal.
Conversion de 1024 : 1024 = 210 donc un bit suivi de 10 zeros. Par consequent
1024 secrit en binaire 100000000002 , 20008 en octal, 40016 en hexadecimal.
Conversion de 10000 :
8192 10000 < 16384
1024 1808 < 2048
512 784 < 1024
256 272 < 512
8 16 < 32

donc
donc
donc
donc
donc

reste
reste
reste
reste
reste

10000 8192 = 1808


1808 1024 = 784
784 512 = 272
272 256 = 16
16 16 = 0

Par consequent 10000 secrit en binaire 100111000100002 , 234208 en octal,


271016 en hexadecimal.

Exercice 3. Convertir en binaire, puis en octal, et enfin en decimal les nombres


suivants : 5A16 , CF BA16 , E10D16 , F F16 , B0016 , F 00016 , F F F F16 .
Correction.
Conversion de 5A16 : 5A16 secrit en 010110102 en binaire, 1328 en octal, enfin
5A16 = 5 161 + 10 160 = 80 + 10 = 90.
Conversion de CF BA16 : CF BA16 secrit 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 secrit 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 secrit en 111111112 en binaire, 3778 en octal,
enfin F F16 = 15 161 + 15 160 = 240 + 15 = 255.
Conversion de B0016 : B0016 secrit en 1011000000002 en binaire, 54008 en
octal, enfin B0016 = 11 162 = 11 256 = 2816.
2

Conversion de F 00016 : F 00016 secrit 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 secrit 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
cest 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 secrit 1 x4 + 0 x3 + 1 x2 +


0 x1 + 1 x0 soit x4 + x2 + 1. le nombre 111x secrit 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`ere 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
x

2
+ x

2
+ 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

Nombres sign
es
Exercice 5. Ecrire les complements `a 1 puis `a 2 des nombres binaires suivants :
10101012 , 01110002 , 00000012 , 100002 , 00002 . Commenter. . .
Correction.
10101012
01110002
00000012
100002
00002

Complement a
`1
01010102
10001112
11111102
011112
11112

Complement `
a2
Compl(1)+1 : 01010112
Compl(1)+1 : 10010002
Compl(1)+1 : 11111112
Compl(1)+1 : 100002
Compl(1)+1 : 100002

Remarquer la quatri`eme ligne (0 modulo 24 ) et la cinqui`eme ligne (debordement sur


le cinqui`eme bit).
Exercice 6. Quel est lequivalent decimal des nombres signes suivants 1012 (sur
trois bits), 10112 (sur quatre bits), 001110012 (sur huit bits), 101110012 (sur huit
bits). Etendre la representation de chacun de ces nombres sur seize bits.
Correction.
Sur trois bits de representation 1012 est un nombre negatif. Son complement `
a
deux est 0102 (complement a
` un) + 1, soit 0112 (+310 ), donc 1012 vaut 310 .
Sur quatre bits de representation 10112 est un nombre negatif. Son complement
`
a deux est 01002 (complement `
a un) + 1, soit 01012 (+510 ), donc 10112 vaut
510 .
Sur huit bits de representation 001110012 est un nombre positif dont la valeur
decimale est 25 + 24 + 23 + 20 , soit 5710 .
Sur huit bits de representation 101110012 est un nombre negatif. Son complement
`
a deux est 010001102 (complement a
` un)+1, soit 010001112 (26 +22 +21 +20 =
+7110 ), donc 101110012 vaut 7110 .
Pour etendre la representation de chaque nombre sur seize bits, on proc`ede par extension du bit de signe vers les poids forts, par exemple la representation de 1012
sur seize bits est donnee par 1111 1111 1111 1101.

Arithm
etique des nombres sign
es
Exercice 7. Effectuer les operations arithmetiques suivantes sur 6 bits, les nombres
representes etant signes, puis donner les resultats en decimal :
0011102 + 1100102 , 1010112 + 1110002 , 1110012 + 0010102 ;
0101012 0001112 , 1110012 0010102 , 1010112 1001102 .

Correction.
001110
+ 110010
________
1000000

101011
+ 111000
________
1100011

111001
+ 001010
________
1000011

010101
- 000111
________
001110

111001
- 001010
________
101111

101011
- 100110
________
000101

Remarque :
Un resultat dont le 6`eme bit `
a gauche (bit de poids fort) est a
` 1, represente en
complement `
a 2 un entier negatif ;
Un resultat dont le 6`eme bit `
a gauche (bit de poids fort) est a
` 0, represente en
complement `
a 2 un entier positif ;
Les resultats issus des additions sont donnes sur 7 bits, il y a donc depassement ;
mais en complement `
a 2, les entiers sont codes modulo 2n (ici n = 6), et par
consequent lequivalent decimal dun resultat sur 7 bits est egal `
a lequivalent
decimal du meme resultat sur 6 bits (autrement dit, il suffit denlever le 7`eme
bit `
a 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 decimal 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 decimal de 101111 (6 bits) est 17.
C2 (000101) = +5 sur 6 bits.

Exercice 8. Effectuer les operations arithmetiques suivantes directement en hexadecimal,


puis verifier le resultat en binaire :
B7AD16 + 51E016 ;
8BA216 + 6A716 ;
8BA216 6A716 ;

Correction.
Operations en hexadecimal :
B7AD16
+51E016
1098D16

8BA216
+6A716
924916

Verification en binaire :
1011 0111 1010 1101
0101 0001 1110 0000
________________________
0001 0000 1001 1000 1101
1

1000 1011 1010 0010


0110 1010 0111
___________________
1001 0010 0100 1001

8BA216 6A716 : Soustraire, cest additionner `


a un nombre son oppose i.e.
son complement a
` deux. Le complement a
` deux (sur 16 bits) de 06A716 est
F 95916 . On a alors :
8BA216
+F 95916
84F B16
Il est bien s
ur aussi possible deffectuer directement la soustraction, en tenant
compte du fait que les retenues sont donnees en base 16. Ainsi dans la soustraction 8BA216 6A716 on commence par enlever (en hexadecimal) 716 de 1216
(qui est lecriture hexadecimale de 18), il reste donc B16 (ecriture hexadecimale
de 11) avec une retenue qui se propage ; on obtient alors (colonne suivante)
116 + A16 = B16 enleve de 1A16 (cest-`
a-dire 11 enleve de 26) et il reste donc
F16 (ecriture hexadecimale de 15) avec une retenue qui se propage ; on obtient
116 + 616 = 716 enleve de B16 (ecriture hexadecimale de 11), il reste donc 416
; enfin, on enl`eve 016 de 816 et il reste donc 816 . En bref :
8BA216
6A716
84F B16

Exercice 9. Convertir en binaire en passant par lhexadecimal :


5 sur 16 bits, puis sur 32 bits ;
23 sur 32 bits.

Correction. Sur 16 bits :


1000016
0000516
F F F B16

Sur 32 bits :
10000000016
00000000516

10000000016
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 exprimee sur 6 bits ;
0, 83 avec la partie fractionnaire exprimee sur 4 bits ;
37, 62 avec la partie fractionnaire exprimee sur 8 bits ;

Correction.
Conversion de 0, 48, partie decimale 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 secrit 0, 0111102 .
Conversion de 0, 83, partie decimale 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 secrit 0, 11012 .
Conversion de 37, 62, partie decimale sur 8 bits :
Partie enti`ere :
32 37
45
11

donc reste
donc reste
donc reste

37 32 = 5
54=1
11=0

donc 37 = 25 + 22 + 20 do`
u en binaire 1001012 .

Partie decimale :
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 secrit 0, 100111102 .
37, 62 secrit 100101, 100111102 .

Exercice 11. Donner la representation flottante de 3, 14159 en simple precision


dans la norme IEEE 754.
Correction. 3, 1415910 11, 001001002 , soit apr`es normalisation : 1, 1001001002
21 . On a donc :
100100100 represente la mantisse (avec 1 significatif implicite)
1 represente lexposant
lexposant corrige en simple precision est 010000000 (128 = 1 + 127).
La representation flottante de 3, 14159 en simple precision est donc
0 010000000 100100100000000000000000
.