Vous êtes sur la page 1sur 10

Université Moulay Ismail Année Universitaire : 2020/2021

Faculté des Sciences de Meknès Filière : SMIA1


Département d’Informatique
Pr. Ahmed ZAIM

Corrigé TD N°2
Exercice 1
Soit un ordinateur qui représente les données sur 8 bits
1. Compléter le tableau suivant

Décimal Binaire pur Binaire signé Complément à 1 Complément à 2


+100 01100100 0110 0100 0110 0100 0110 0100
+56 0011 1000 0011 1000 0011 1000 0011 1000
+7 0000 0111 0000 0111 0000 0111 0000 0111
+2 0000 0010 0000 0010 0000 0010 0000 0010
-2 1000 0010 1111 1101 1111 1110
-7 1000 0111 1111 1000 1111 1001
-56 1011 1000 1100 0111 1100 1000
-100 1110 0100 1001 1011 1001 1100

Remarques : BS, C1, C2

(a) le bit de poids fort d’un nombre négatif est toujours 1 ;


(b) le bit de poids fort d’un nombre positif est toujours 0 ;

Binaire signé

Pour coder (-2) :

• On prend le nombre positif + 2 : 0000 0010


• On inverse le bit de signe : 1000 0010 correspond à – 2 en BS

Complément à 1

Pour coder (-2) :

• On prend le nombre positif + 2 :0000 0010


• On inverse les bits: 1111 1101 correspond à – 2 en Cà1

Complément à 2

Pour coder (-2) :

• On prend le nombre positif + 2 : 0000 0010


• On inverse les bits : 1111 1101

Page 1 / 10
• On ajoute 1 : 1111 1101
+ 0000 0001
= 1111 1110 correspond à – 2 en Cà2

2. Convertir en décimal les valeurs suivantes

Décimal
Binaire pur 00011001 25
10010111 151
Binaire signé 01100100 +100
11000111 -71
Complément à 1 00001111 +15
11000111 -56
Complément à 2 01101101 +109
11001001 -55

Binaire pur
• 0001 1001 est un nombre positif dont la valeur décimale est 25
• 1001 0111est un nombre positif dont la valeur décimale est 151

Binaire signé
• 01100100 est un nombre positif dont la valeur décimale est 26 +25+22 = 100
• 11000111 est un nombre négatif alors
(11000111)BS=-(01000111)2=-(26 +22+21+20)10 =-(71)10

Complément à 1

• 0000 1111 est un nombre positif dont la valeur décimale est 15


• 11000111 est un nombre négatif alors

1ère Méthode

(11000111)Cà1= - (not(11000111)) 2= -(00111000)2= - (32 +16+ 8) 10 = - (56)10

2ème Méthode

(11000111)Cà1= (-27 + 26 + 22 +21 +20)10 +1= (-128+64+8+1) +1= -57+1=- (56)10

Complément à 2

• 0110 1101 est un nombre positif dont la valeur décimale est 109
• 11001001 est un nombre négatif alors

1ère Méthode

(11001001)Cà2= - 27 + 26 + 23 + 20= -128+64+8+1= -55

2ème Méthode

Page 2 / 10
(11001001)Cà2= - (not (11001001) +1)2 = - (00110110 + 1)2 = - (00110110)2= - (32 +16+ 4 + 2 + 1)= - (55)10

Exercice 2
1. Donner en décimal l’intervalle [min, max] qu’on peut représenter pour chaque cas

Bits Nombre non Binaire signé Complément à 1 Complément à 2


signé
2 [0, 3]=[0, 22-1] [-1, +1] [-1, +1] [-2, +1]
3 [0, 7]=[0, 23-1] [-3, +3] [-3, +3] [-4, +3]
n [0, 2n-1] [-(2n-1-1), +(2n-1-1)] [-(2n-1-1), +(2n-1-1)] [-2n-1, +(2n-1-1)]

Avec 3 bits on peut représenter 8 nombres de 0 à 7=23 -1

La représentation circulaire du codage en binaire pur d’un nombre non signé compris entre 0 et 7
est :

Rqs :

Cà1 et BS

• 2 zéros zéro positif et zéro négatif

Cà2
• 1 seul zéro
• Position symétrique des nombres positifs et négatifs par rapport au zéro

2. Combien faut-il de bits, au minimum, pour coder les nombres non signés (48965)10 et
(9965245)10 ?

48965
À partir du tableau, on déduit que la plus grande valeur d'un nombre non signé codé
sur n bits (2n - 1) doit être supérieure ou égale à 48965.
2n – 1 >= 9965245
2n>=9965246
ln (2n)>=ln(9965246)
nln(2)>=ln(9965246)
n>=ln(9965246)/ln(2)
n>=23,25 ⇨nMin= 24

En utilisant le même raisonnement que précédemment, on obtient :

2n – 1 >= 48965
2n>=48966
ln (2n)>=ln(48966)
nln(2)>=ln(48966)

Page 3 / 10
n>=ln(48966)/ln(2)
n>=15,58 ⇨ nMin = 16

3. Combien faut-il de bits, au minimum, pour coder en binaire complément à 2 les


nombres signés (-5)10 et (28)10 ?

(-5)
À partir du tableau, on déduit que la plus petite valeur d'un nombre signé codé sur n bits (-2n-1)
doit être inférieure ou égale à -5.
-2n-1 <= −5
2n-1 >=5
ln(2n-1) >=ln (5)
(n−1) ln(2)>=ln(5)
n−1>=ln (5)/ln (2)
n>= ln (5)/ln (2)-1
n>=3,33 ⇨ nMin = 4

(+28)
À partir du tableau, on déduit que la plus grande valeur d'un nombre signé codé sur n bits (2n-1 -1)
doit être supérieure ou égale à 28.
2n-1 -1>=28
2n-1 >=29
ln(2n-1)>=ln (29)
(n−1)ln(2)>=ln(29)
n−1>= ln(29)/ln (2)
n>= ln(29)/ln (2)-1
n>=5,86 ⇨nMin = 6

Exercice 3

Effectuer les opérations suivantes en complément à deux sur 4 bits pour la partie entière et 2
bits pour la partie fractionnaire. Préciser, pour chaque opération, la retenue et le débordement,
en justifiant la réponse.

1101.01 + 0100.11 = (1) 0010.00 Il y a une retenue. Il n’y a pas le débordement


1111.01 − 0001.11 = 1101.10 Il n’y a pas une retenue. Il n’y a pas le débordement
0111.01 + 0001.11 = 1001.00 Il n’y a pas une retenue. Il y a le débordement
1001.01 − 0001.11 = 0111.10 Il n’y a pas une retenue. Il y a le débordement

Exercice 4

On utilise la représentation en complément à 2, sur n bits.

1. Lorsque n = 8, donner les valeurs binaires des nombres suivants et de leurs opposés :
(3) 10, (127) 10, (63) 10.
2. Lorsque n = 8, effectuer en binaire les opérations (51) 10+(127) 10, (−3) 10 + (−127) 10,
(−127) 10+(127) 10, (−63) 10 + (−63) 10. Préciser, pour chaque opération, la retenue et le
débordement.

Page 4 / 10
3. Lorsque n = 12 représenter 497 et -123 en complément à 2 sur 12 bits.
4. Quelle est la valeur décimale de 101010001 s'il s'agit de la représentation à 2 d'un
nombre entier sur 9 bits de position ?

Correction.
On utilise la représentation en complément à 2, sur n bits.

1. Lorsque n = 8, donner les valeurs binaires des nombres suivants et de leurs opposés :
(3)10, (127)10, (63)10, (51)10.
Décimal Binaire pur Binaire signé Binaire C à 1 Binaire C à 2
3 00000011 (+3) 00000011 00000011 00000011
(-3) 10000011 11111100 11111101
127 01111111 (+127) 01111111 01111111 01111111
(-127) 11111111 10000000 10000001
63 00111111 (-63) 00111111 00111111 00111111
(-63) 10111111 11000000 11000001
51 00110011 (+51) 00110011 00110011 00110011
(-51) 10110011 11001100 11001101

2. Lorsque n = 8, effectuer en binaire les opérations (51)10+ (127)10, (−3)10 + (−127)10,


(127)10+ (-127)10, (63)10 + (−63)10. Préciser, pour chaque opération, la retenue et le
débordement.

3. Lorsque n = 12 représenter 497 et -123 en complément à 2 sur 12 bits.


Décimal Binaire pur Binaire signé Binaire C à 1 Binaire C à 2
497 000111110001 000111110001 000111110001 000111110001
-123 100001111011 111110000100 111110000101

4. Quelle est la valeur décimale de 101010001 s'il s'agit de la représentation en


complément à 2 d'un nombre entier sur 9 bits de position ?
101010001 en C à 2 = 110101111 en binaire signé = (- 175)

Exercice 5

Effectuer les opérations d’additions suivantes en complément à 2 sur un octet, en


précisant que les résultats sont vrais ou faux. Justifier les réponses.

a) 0110 1011 + 1011 1101


b) 1001 0110 + 1111 1011
c) 0110 1111 + 0001 1001
d) 1000 0010 + 1010 1011

Correction
Effectuer les opérations d’addition suivantes en complément à 2 sur un octet, en précisant que
les résultats sont vrais ou faux. Justifier les réponses.
a) 10101101 (-83)
+
11110010 (-14)

Page 5 / 10
= 10011111 (-97)

On peut vérifier le résultat en cherchant les équivalents en décimal. Comme les nombres sont
en Cà 2, il faut les convertir en binaire signé avant de chercher leurs équivalent en décimal.
Le résultat est juste.
b) 10101110
+
10111110

= 01101100
La somme de deux nombres négatif doit donner un nombre négatif alors qu’on a obtenu un
nombre positif, donc le résultat est faux.

c) 01101101
+
01111011

11101000
La somme de deux nombres positif doit donner un nombre positif alors qu’on a obtenu un
nombre négatif, donc le résultat est faux.

d) 00100011 (+35)
+
01010111 (+87)

01111010 (+122)
Le résultat est juste

e) 01101111 (+111)
+
11111111 (-1)

= 01101110 (+ 110)
Le résultat est juste : la somme de deux nombres de signe opposé ou bien en cherchant les
équivalents en décimal.

Exercice 6

1. En virgule fixe, coder en binaire:


• 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 d'un nombre fractionnaire N de la base 10 vers la base 2


Conversion de la partie entière : cfed 1
Conversion de la partie fractionnaire : elle s'effectue en multipliant itérativement la partie
fractionnaire par 2. La partie entière résultante donne la conversion de la partie fractionnaire
(digit, a , a .., a , ...).
-1 -2 -i

Page 6 / 10
• Conversion de 0; 48, partie décimale sur 6 bits :
0; 48 x 2 = 0; 96 0
0; 96 x 2 = 1; 92 1
0; 92 x 2 = 1; 84 1
0; 84 x 2 = 1; 68 1
0; 68 x 2 = 1; 36 1
0; 36 x 2 = 0; 72 0

0, 48 s'écrit (0, 011110)2.

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


0; 83 x 2 = 1; 66 1
0; 66 x 2 = 1; 32 1
0; 32 x 2 = 0; 64 0
0; 64 x 2 = 1; 28 1

0, 83 s'écrit (0, 1101)2.

• 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 (100101)2.

Partie décimale :
0; 62 x 2 = 1; 24 1
0; 24 x 2 = 0; 48 0
0; 48 x 2 = 0; 96 0
0; 96 x 2 = 1; 92 1
0; 92 x 2 = 1; 84 1
0; 84 x 2 = 1; 68 1
0; 68 x 2 = 1; 36 1
0; 36 x 2 = 0; 72 0
0, 62 s'écrit (0, 10011110)2.

Donc 37; 62 s'écrit (100101; 10011110)2.

1. Donner la représentation en base dix des nombres suivants:


a) (10011,11101)2
b) (102,221)3
c) (414,23)5
d) (8,5)60
Correction

• Conversion d'un nombre fractionnaire N de la base 2 vers la base 10


Il suffit de multiplier chaque digit du nombre N par la puissance de 2 correspondante.
a) (10011,11101)2= 24 +21+20+2-1 +2-2 +2-3 +0x2-4 +2-5 = (19, 90625)10

Page 7 / 10
• Conversion d'un nombre fractionnaire N de la base 3 vers la base 10
Il suffit de multiplier chaque digit du nombre N par la puissance de 3correspondante.
b) (102, 221)3 =1x32 + 0x31 +2x30 +2x3-1 +2x3-2 +1x3-3 (11, 92592593)10

• Conversion d'un nombre fractionnaire N de la base 5 vers la base 10


Il suffit de multiplier chaque digit du nombre N par la puissance de 5correspondante.
c) (414, 23)5 = 4 x52 + 1x51 + 4x50 + 2x 5-1 + 3x5-2 = (109, 52)10

• Conversion d'un nombre fractionnaire N de la base 60 vers la base 10


Il suffit de multiplier chaque digit du nombre N par la puissance de 60correspondante.
d) (8, 5)60= 8x 600 + 5 x60-1= (8, 08333)10

2. Donner la représentation dans la base cible des nombres décimaux suivants.


a) (89,0625)10 vers la base deux
b) (110,23046875)10 vers la base seize
c) (55,616)10 vers la base cinq

Correction

a) (89,0625)10 vers la base deux;


Partie entière
(89)10 = (1011001)2.

Partie fractionnaire
Pour convertir la partie fractionnaire (0, 0625)10, on fait comme suit :
0, 0625x2 = 0, 125 donc a-1= 0
0,125x2 = 0, 25 donc a-2= 0
0,25x2 = 0, 5 donc a-3 = 0
0,5x2 = 1, 0donc a-4= 1 on arrête.

On a donc (89, 0625)10 = (1011001, 0001)2.

b) (110; 23046875)10 vers la base seize


Partie entière
(110)10 = (6E) 16

Partie décimale
0, 23046875 x16 = 3, 6875, on conserve a-1 = 3, et oncontinue avec 0,6875
0, 6875x16 = 11,0, on arrête et on conserve a-2 =(11)10 = (B)16.
On a donc (110, 23046875)10 = (6E, 3B)16

c) (55; 616)10vers la base cinq

Partie entière
(55)10 = (210)5

Partie décimale
0, 616x5 = 3, 08 donc a-1= 3
0, 08 x5 = 0, 4 donc a-2= 0

Page 8 / 10
0,4x5 = 2, 0 donc a-3= 2

On a donc (55, 616)10 =(210; 302)5.

Exercice 7

1) Convertir les nombres réels +12.06640625 et -0.2734375 dans le format IEEE 754 en simple
précision puis en double précision.

+12,06640625 = +(1100,00010001)2= +(1,10000010001)2 x 23


Singe de la mantisse : SM=0 car le nombre positif
La mantisse : M=10000010001
En IEEE 754 simple précision :
Eb = Er + biais = 3 + 127 = 130 = (10000010)2
+12,06640625 = (0 1000 0010 100 0001 0001 0000 0000 0000)2
+12,06640625 = (41411000)16
En IEEE 754 double précision :
Eb = Er + biais = 3 + 1023 = 1026 = (100 0000 0010)2
+12,06640625 = (0 100 0000 0010 1000 0010 0010 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000)2
+12,06640625 = (4 0 2 8 2 2 0 0 0 0 0 0 0 0 0 0)16
-0,2734375=-(0,0100011)2 = -(1,00011)2 x 2-2
Singe de la mantisse : SM=1 car le nombre négatif
La mantisse : M=00011
En IEEE 754 simple précision :
Eb = Er + biais = -2 + 127 = 125 = (01111101)2
-0,2734375=(1011 1110 1000 1100 0000 0000 0000 0000)2 = (BE8C0000)16
En IEEE 754 double précision :
Eb = Er + biais = -2 + 1023 = 1021 = (011 1111 1101)2
-0,2734375= (1011 1111 1101 0001 1000 0000 0000 …. 0000)2= (BFD1 8000 0000 0000)16

2) Donnez la représentation décimale des nombres codés en simple précision suivants :


(1100 0001 0111 1011 0000 0000 0000 0000)2
X=-(1,1111011) x 2Er
Eb = 1000 0010 = 130
Er = 130 -127 = 3
X=-(1,1111011) x 23
X=-(1111,1011)2 = -15,6875

(0100 0000 1111 0000 0000 0000 0000 0000)2


Y=+(1,111) x 2Er
Eb = 1000 0001 = 129
Er = 129 – 127 = 2
Y=+(1,111) x 22
Y=+(111,1) 2 = +7,5

3) Donnez la représentation décimale des nombres codés en double précision suivants :

Page 9 / 10
(403D 4800 0000 0000)16 = (0100 0000 0011 1101 0100 1000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000)2

A= +(1,110101001) x 2Er
Eb = 100 0000 0011 = 1027
Er = 1027 – 1024 = 4
A= +(1,110101001) x 24
A= +(11101,01001)2
A= +29,28125

(C040 0000 0000 0000)16 = (1100 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000)2
B=-(1,0) x 2Er
Eb = 100 0000 0100 = 1028
Er = 1028 -1023 = 5
B=-(1,0) x 25 = -32

Exercice 8

Soient les deux nombres codés suivant la norme IEEE 754 et représentés en hexadécimal :
3EE0 0000 et 3D80 0000.
Calculez la somme des deux nombres et donnez le résultat sous forme IEEE 754 et sous forme
décimale.

Hexadécimal 3 E E 0 0 0 0 0
Binaire 0011 1110 1110 0000 0000 0000 0000 0000
Eb= 0111 1101 = 125
Er = 125 – 127 = -2
+1,11)2 x 2-2 = +0,4375)10

Hexadécimal 3 D 8 0 0 0 0 0
Binaire 0011 1101 1000 0000 0000 0000 0000 0000
Eb= 0111 1011 =123
Er = 123 – 127 = -4
+1,0)2 x 2-4 =+ 0,0625)10
Alors la somme en binaire (+1,11)2 x 2-2 + (+1,0)2 x 2-4= +(1,11 x 2-2 + 0,01 x 2-2 ) = +10,0 x 2-2
=+1,0 x 2-1
= +0,5)10 (décimal)
Le résultat codé en IEEE 754 simple précision
SM = 0
Eb = Er + biais = -1 + 127 = 126 = 0111 1110

+0,5)10 = 0011 1111 0000 0000 0000 0000 0000


= 3 F 0 0 0 0 0
Donc la somme 3EE0 0000 + 3D80 0000 = 3F00 0000
(+0,4375)10 + (+0,0625)10 = +0,5)10 (Juste)

Page 10 / 10

Vous aimerez peut-être aussi