Vous êtes sur la page 1sur 9

Université des Sciences et Technologie M.

Boudiaf Structure Machine 1


Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

Exercice 1

1) Codage : conversion du système décimal vers le système binaire (b=10 → b=2)

Cas des nombres entiers :


57(10) = N(2) = N(8) = N(16)
Il s’agit de trouver l’équivalent du nombre entier décimal 57(10). Pour cela, on fera une
succession de division de ce nombre par la base de destination (la base 2, 8 et 16) jusqu’à ce
que le quotient soit égal à 0. La suite des restes correspond au nombre de la base visée.

 Conversion en binaire (b=2)


57(10) = 111001(2)
57 2
1 28 2
0 14 2
0 7 2
1 3 2
1 1 2
1 0

 Conversion en octal (b=8)

57 8 57(10) = 71(8)
1 7 8
7 0

 Conversion en hexadécimal (b=16)

57 16
9 3 16 57(10) = 39(16)
3 0

Cas des nombres fractionnaires :


43,5(10) = N(2) =N(3) = N(4)

Pour la partie entière, on procède avec des divisions successives (comme pour les nombres
entiers). Tandis que pour la partie décimale, on procède avec des multiplications successives.
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

Partie entière Partie décimale


43(10) =101011 (2) 0,5 x 2 = 1

43,5(10) = 101011 , 1(2)

On s’arrête lorsque le résultat est un nombre entier sinon on continue la multiplication


successive jusqu’à ce qu’on atteint une certaine précision (2 ou 3 ou 4 chiffres…)

2) Décodage : conversion du système binaire vers le système décimal (b=2 → b=10)

On écrit le nombre sous sa forme polynomiale pour avoir son équivalent en décimal.

3 2 1 0 -1 -2 -3
1110,111 (2) = 1x23+1x22+1x21+0x20+1x2-1+1x2-2+1x2-3
= 8+4+2+0.5+0.25+0.125
=14,875(10)
3 2 1 0 -1
70D0,5(16) = 7x163+0x162+Dx161+0x160+5x16-1 (sachant que D(16)= 13(10) )
=28672+0+208+0+0,3125
=28880,3125(10)
1 0 -1 -2
31,43(6) = 3x61+1x60+4x6-1+3x6-2
=18+1+0.666+0.083
=19,749(10)

3) Transcodage : conversion d’un système b vers un système b’ (b → b’) b,b’≠10

Application aux bases 2,8 et 16

11010(2) = N(8)
Dans cet exemple, il s’agit de convertir ce nombre de la base 2 vers la base 8. On doit le
découper en groupes de 3 bits et remplacer chaque groupe par sa valeur octale (en allant de la
droite vers la gauche).

Remarque : on ajoute à la partie entière des zéros à gauche si nécessaire pour avoir toujours
un groupe de 3 bits et des zéros à droite pour la partie décimale.

11010(2) = 011 010(2) 011 010(2) = 32(8)

3 2

1001,01(2) = N(16) =N(4)


Le passage de la base 2 vers la base 16 se fait en découpant le nombre binaire en groupes
de 4 bits et remplacer chaque groupe par sa valeur hexadécimale (en allant de la droite vers la
gauche pour la partie entière et le sens contraire pour la partie décimale).
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

1001,01(2) = 1001 ,0100 (2) = 9,4(16)

9 4
Le passage de la base 2 vers la base 4 se fait en découpant le nombre binaire en groupes
de 2 bits et remplacer chaque groupe par sa valeur en base 4

1001,01(2) = 10 01 , 01 (2) =21,1(4)

2 1 1
72(8) = N(2) = N(16)

Pour convertir un nombre de la base 8 vers la base 2, il suffit de convertir chaque chiffre de ce
nombre en binaire sur 3 bits.

72(8)= 7 2 (8) = 111 010 (2)

111 010

Remarque : on ne peut passer directement de la base 8 vers la base 16. Donc, on va passer de
la base 2 vers 16.

72(8) = 111010 (2) = 0011 1010 (2) = 3 A(16) sachant que : 1010 (2) = 10(10)= A(16)

3 A

3C,2(16) = N(2) = N(4)

Pour convertir un nombre de la base 16 vers la base 2, il suffit de convertir chaque chiffre de
ce nombre en binaire sur 4 bits.

3C,2(16) = 3 C , 2 = 0011 1100, 0010 (2)

0011 1100 0010

Pour convertir ce nombre en base 4, on a deux solutions. Soit on le convertit de la base 16


vers la base 4 ou bien en allant de la base 2 vers la base 4. On donnera les deux solutions.

1ère solution : base 16 → base 4


Pour convertir 3C,2(16) de la base 16 vers la base 4, il suffit de convertir chaque chiffre de ce
nombre en base 4.

3C,2(16) = 3 C , 2 (16) = 0330,02(4) sachant que C(16)=12(10)=30(4)

03 30 02
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

2ème solution : base 2 → base 4


On convertit son équivalent binaire en base 4. Pour cela, il suffit de le découper en groupes de
2 bits et remplacer chaque groupe par sa valeur en base 4.
3C,2(16) = 00111100, 0010 (2)= 00 11 11 00 , 00 10 (2)= 0330,02(4)

0 3 3 0 0 2

Exercice 2 : Addition en binaire

 7A0B(16) + 56,4(8) = ?

On commence par convertir les opérandes en base 2 ensuite on fera l’addition.


Remarque : (les conversions sont détaillées dans l’exercice 1).

7A0B(16) = 7 A 0 B (16) = 0111 1010 0000 1011 (2)


56,4(8) = 5 6 , 4 (8) = 101 110 , 100 (2)

1+1+1=11(2) 1+0+1=10(2) 1+0=1(2 Remarque


Le calcul se fait soit en décimal et on
1 1 1 1 0 1 0 0 0 0 10 11 10 1 1 , 0 0 0 convertit le résultat en binaire ou bien on
+ 1 0 1 1 1 0 , 1 0 0 utilise le comptage en binaire
= 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 , 1 0 0 directement.
On a par exemple : 1+1+1=11(2) ???
 1+1+1= 3(10) = 11(2) (en passant
7A0B(16) + 56,4(8) = 111101000111001,1(2) par le système décimal).
 Ou bien 1+1+1=10+1=11 (on fait le
 143,12 (5) + 31,43(6) = ? comptage en binaire)
2 1 0 -1 -2
143,12 (5)= 1x52+4x51+3x50+1x5-1+2x5-2
= 25+20+3+0.2+0.08
= 48,28(10)
= 110000,0100(2)

31,43(6) = 19,74(10) (Déjà calculé dans l’exercice1)


= 10011,1011(2)

1
1 1 0 0 0 0 , 0 1 0 0
+ 1 0 0 1 1 , 1 0 1 1
= 1 0 0 0 0 1 1 , 1 1 1 1

143,12 (5) + 31,43(6) = 1000011,1111(2)


Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

Exercice 3 : Soustraction en binaire

 12(10) – 25(10)

12(10)= 1100 (2)


25(10)= 11001 (2)
Puisque 12(10) – 25(10) <0 alors on calcule 25(10) – 12(10) et le résultat sera négatif.

2 1
1 1
1 1 0 0 1
– 1 11 1 0 0
= 0 1 1 0 1

 Dans la colonne 1, On a : 0-1= ? Impossible alors on emprunte un 1 au chiffre 0 et


donc on aura 10-1. (Pour le calcul soit on le fait en décimal soit en binaire directement
sans passer par le décimal).

 10(2)-1(2) = 2(10)-1(10) = 1(10)= 1(2) (en passant par la base 10)


 10(2)-1(2) on transforme la soustraction en addition. On va dire que 1(2)+ ? =10(2)
Le résultat est donc 1(2)

 Dans la colonne 2, on a 11-11 = 11(2) -10(2) =1(2)

11(2) 1+1=10(2)

A la fin on trouve : 12(10) – 25(10) = - 1101(2) <0

 2 ,25(10) – 7,75(10)

2 ,25(10) = 10,01(2)
7,75(10) = 111, 11(2)

2 ,25(10) – 7,75(10) <0 alors on calcule : 7,75(10) –2 ,25(10)

1 1 1, 1 1
- 1 0, 0 1
= 1 0 1, 1 0

Donc : 2 ,25(10) – 7,75(10) = -101,1(2) <0


Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

 A0137(16) – AFBC(16)

A 0 1 3 7(16) = 1010 0000 0001 0011 0111 (2)


A F B C(16) = 1010 1111 1011 1100 (2)

2 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1
- 1 1 11 10 11 10 11 11 11 11 11 10 11 11 1 1 0 0
= 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1

 Dans la colonne 1, on a 10-10 = 10(2) -1 (2) =1(2)

10(2) 0+1=1 (2)

 Dans la colonne 2, on a 10-11 = 10(2) -10(2) =0(2)

10(2) 1+1=10(2)

Donc : A0137(16) – AFBC(16) = 1001 0101 0001 0111 1011 (2)

Exercice 4 :

La multiplication :

 23(10) × 29(10) = N(2)

Comme dans la base 10, la multiplication est une suite d’additions et son principe ne change
pas dans la base 2 ou une autre base.
Commençons par convertir les deux opérandes :

23(10) = 10111(2)
29(10) = 11101(2)

Remarque : il est préférable de faire l’addition dans la base 2. Pour cette raison, il faut
apprendre à compter dans cette base.

Table de comptage dans les bases 10,2

Base 10 Base 2 Base 10 Base 2


0 0 8 1000
1 1 9 1001
2 10 10 1010
3 11 11 1011
4 100 12 1100
5 101 13 1101
6 110 14 1110
7 111 15 1111
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

1 0 1 1 1
× 1 1 1 0 1
1 1
= 1 0 1 1 1
10
+ 0 0 0 0 0 .
10
+ 1 0 1 1 1 .
10
+ 1 0 1 1 1 .
1
+ 1 0 1 1 1 .
= 1 0 1 0 0 1 1 0 1 1
2 1

1
 Dans la colonne 1, on a : 1+0+1+1+1 = (1+1) + 1+1+1 =101 (on pose 1 et on retient 10)

1+1= 10 et 10+1= 11 et 11+1 = 100 et 100+1= 101

 Dans la colonne 2, on a : 10+1+1=100 (on pose 0 et on retient 10)

Enfin : 23(10) × 29(10) = 1010011011(2)

 2436(8) × 37(8) = N(2)

2436(8) = 010 100 011 110 (2)


37(8) = 011 111 (2)

1 0 1 0 0 0 1 1 1 1 0
× 1 1 1 1 1
11
= 11 10
0 10
1 11
0 0 110 10
1 1
1 1 1 0
1
+ 1 0 1 0 0 0 1 1 1 1 0 .
1
+ 1 0 1 0 0 0 1 1 1 1 0 .
1
+ 1 0 1 0 0 0 1 1 1 1 0 .
1
+ 1 0 1 0 0 0 1 1 1 1 0 .
= 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0

Donc : 2436(8) × 37(8) = 1001 111010100010 (2)

 20,7(10) × 7,5(10) = N(2)

20,7(10) = 10100,1011(2)
7,5(10) = 111,1(2)
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

1 0 1 0 0, 1 0 1 1
× 1 1 1, 1
1 1 1
= 1 0 1 100 10
0 1
1 1
0 1 1
1
+ 1 0 1 0 0 1 0 1 1 .
1
+ 1 0 1 0 0 1 0 1 1 .
1
+ 1 0 1 0 0 1 0 1 1 .
= 1 0 0 1 1 0 1 1, 0 0 1 0 1

Donc : 20,7(10) × 7,5(10) = 10011011,00101 (2)

La division :

Comme dans le décimal la division est une suite de soustractions. Seulement dans le binaire le
quotient soit il est égal à 1 si le dividende est supérieur au diviseur ou bien 0 dans le cas
contraire.

 60(10) : 21(10) = N(2)

60(10) = 111100 (2)


21(10) = 10101 (2)

1
1 1 1 1 0 0 1 0 1 0 1 La première étape de la division :
- 1 0 1 10 1 1 0, 1 1
= 0 1 0 0 1 0 1 2
- 0 0 0 0 0 0
1 1 1 1 1
= 0 1 0 0 1 0 0 1 1 1 1 10 0 1 0 1 0 1
- 1 11 10 11 10 1
- 1 0 1 10 1 1
= 0 0 1 1 1 1 10
- 1 0 1 = 0 1 0 0 1
10 1
= 0 1 0 0 1
On remarque que le dividende 1 est supérieur
au diviseur 2 alors le quotient est égal à 1.
On obtient alors : 60(10) : 21(10) = 10, 11 (2)
Ensuite on soustrait le diviseur au dividende et on
obtient le reste.

 237,5625(10) : 21(10) = N(2)

237,5625(10) = 11101101,1001(2)
21(10) =10101(2)
Université des Sciences et Technologie M. Boudiaf Structure Machine 1
Faculté des Mathématiques et Informatique
Département d’Informatique TD1 (Corrigé)

1 1 1 0 1 1 0 1, 1 0 0 1 1 0 1 0 1
- 1 0 1 0 1 1 0 1 1, 0 1 0 1
= 0 1 0 0 0 1
- 0 0 0 0 0 0
1 1 1
= 0 1 0 0 0 1 10
1
- 11 10 1 10 1
1
= 0 0 1 1 0 1 1
- 1 10 1 0 1
= 0 0 1 1 0 1
- 0 0 0 0 0
= 1 1 10 1 10
- 1 10 1 10 1
= 0 0 1 0 1 0
- 0 0 0 0 0
= 0 1 0 1 0 1
- 1 0 1 0 1
= 0 0 0 0 0

Donc : 237,5625(10) : 21(10) = 1011,0 101 (2)

 10000111(2) : 101(2) = N(2)

1 1 1
1 0 0 0 0 1 1 1 1 0 1
1
- 11 10 1 1 1 0 1 1
1
= 0 0 1 1 0
- 1 10 1
= 0 0 1 1
- 0 0 0
= 0 1 1 1
- 1 0 1
= 0 1 0 1
- 1 0 1
= 0 0 0

Donc : 10000111(2) : 101(2) = 11011 (2)

Vous aimerez peut-être aussi