Vous êtes sur la page 1sur 19

ESI de Sidi Bel-Abbès

1ère Année 2021/2022

Corrigé de la Fiche de TD N° 1 Architecture des Ordinateurs I

Exercice N° 11:
Représentation des Nombres Entiers
Soit une machine M ou les nombres entiers signés et non signés sont représentés
sur un format de 8 bits.
( les nombres négatifs sont représentés en complément à 2)
1- Donner l’intervalle de représentation des entiers non signés,
2- Donner l’intervalle de représentation des entiers signés,
3- Faites la conversion en binaire et représenter les nombres suivants :
102, 125, 19, 31, 22 ; -102, -125, -19, -31, -22
4- Donner l’équivalent entier de ces configurations suivantes :
11111011 , 11111010, 10101010, 10000100, 11001100
01111011 , 01111010, 00101010, 00000100, 01001100
5- Peut-on représenter 128 ? justifier votre réponse.
6- Donner l’intervalle de représentation des entiers signés et non signés sur
un format de 16 Bits.

Solution EXO 11
7
1) [1 , 2 -1]=[ 0 , 128-1] = [ 0 , 127]
0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1

2) [-27 , -1] = [ -128 , -1]


1 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

3) ( 102 )10 = ( 1100110 )2 ; +102 0 1 1 0 0 1 1 0


-102
1 0 0 1 1 0 1 0
( 125 )10 = ( 1111101 )2 ; +125 0 1 1 1 1 1 0 1
-125
1 0 0 0 0 0 1 1
(31 )10 = ( 11111 )2 ; +31 0 0 0 1 1 1 1 1
-31 1 0 0 0 0 0 0 1
( 22 )10 = ( 10110 )2 ; +22 0 0 0 1 0 1 1 0
-22 1 1 1 0 1 0 1 0
4) Complément à 2 ensuite conversion en décimal
11111011 = -(00000101)2 = -5 ; 11111010= -(00000110)2 = -6
10101010 = -(01010110)2 = - (64+16+4+2 )10=-86
10000100 = -(01111100)2 = - (64+32+16+8+4)10=-124
11001100 == -(00110100)2 = - (32+16+4)10=-52
conversion en décimal
01111011 = (64+32+16+8+2+1 )10= 123
01111010 = (64+32+16+8+2 )10= 122
00101010 = ( 32+8+2 )10= 42 ; 01001100 = ( 64+8+4 )10= 76
5) 128= 27 > 127 qui est la valeur maximale positive donc on ne peut pas
représenter 128 sur un format de 8 bit, il nous faut 9 bits .
6) [0 , 215 -1] = [0 , 32768-1] ] = [0 , 32767]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

[- 215 , -1] = [- 32768 , -1] ]


1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Exercice 1 : Faites les conversions suivantes :
(11111011) 2 = ( ?)10 , (1111111111)2 = ( ?)10 , (10011011,0101)2, =( ?)10
(100010001,11001)2 = ( ?)10
(102)10 = ( ?)2 , (254,75)10 = ( ?)2 , (1024)10 = ( ?)2 , (1022,0625)10 = ( ? )2

Solution Exercice N° 1

(11111011) 2 = ( 28 – 1 -4)10 =256-5= ( 251 )10=27+26+25+24+23+21+20=


=128+64+32+16+8+2+1=( 251 )10
10
(1111111111) 2 = ( 2 )10 = ( 1024 )10
(10011011,0101)2, =(27+24+23+21+20 , 2-2+2-4 )10=
(128+16+8+2+1, 0.25+00625 )10= (155,3125 )10
(100010001,11001)2, =(28+24+20 , 2-1+2-2 +2-5)10=
(256+16+1+0 .5+0 .25+0.03125)10= ( 273,78125 )10

(102)10 = (1100110 )2 , (254,75)10 = (11111101,11)2


(1024)10 = (1 0000000000)2 , (1022,0625)10 = ( 1111111110 ,0001 )2

Exercice 2 : Faites les conversions suivantes :


(1000 0000 1110 1111 0101 1100 1010)2 = ( ?)16
(1 0011 0011 1111 1000 1010)2 = ( ?)16
( 3FF0765)16 = ( ?)2 , (160987ACD)16 = ( ?)2

Solution Exercice N° 2

(1000 0000 1110 1111 0101 1100 1010)2 = ( 8 0 E F 5 C A)16


1 0011 0011 1111 1000 1010)2 = ( 1 3 3 F 8 A )16
( 3FF0765)16 = ( 11 1111 1111 0000 0111 0110 0101 )2
(160987ACD)16 = ( 1 0110 0000 1001 1000 0111 1010 1100 1101)2
Exercice 3 :
Soit un espace de stockage de capacité 8 KOctets= 23*210 Octets = 213 O
Imaginez-le sous forme d’un tableau à 1erOctet
une colonne formé d’octets comme 2ieme Octet
illustré dans le schéma ci-contre.
Nous voulons numéroter en Binaire
Chacun des octets de cet espace
1-Combien de bits sont nécessaires
et suffisants pour numéroter (adresser) Avant dernier
tous les octets sachant que la Dernier octet

numérotation commence de zéro ?


Nous voulons organiser cet espace en sous espaces de un Kilo octets chacun.
2-Quelles sont les adresses début( numéros) du 3e Kilo et 4e Kilo ?
3-Quelles sont les adresses début ( numéros) de l’avant dernier et dernier Kilo ?
4-Quelles sont les adresses fin( numéros) des mêmes blocs que précédemment?
5- Numérotez de nouveau en Hexadécimal et répondez à toutes les questions
Posées en donnant les résultats en base 16.
Si on n’avait pas commencé la numérotation à partir de zéro, le nombre de bits
aurait changé ?
Solution Exercice N° 3
Capacité = 8 KOctets= 2 *210 O=213 O, puisqu’on commence à partir de
3

l’adresse 0 alors l’adresse maximale est ( 213 -1)10=(1111111111111)2


donc il nous faut 13 bits pour adresser chacun des octets
( 0 0000 0000 0000)2
1er Kilo

2e Kilo
0 0111 1111 1111
0100000000000
3e Kilo
0101111111111
0110000000000
4e Kilo

5e Kilo

1011111111111
6e Kilo
1100000000000
1101111111111
7e Kilo
1110000000000
1111111111111
8e Kilo
(0 0 0 0 )16
1er Kilo

2e Kilo
0 7 F F
0 8 0 0
3e Kilo
0 B F F
0 C 0 0
4e Kilo

5e Kilo

1 7 F F
6e Kilo
1 8 0 0
1 B F F
7e Kilo
1 C 0 0
1 F F F
8e Kilo

Si on n’avait pas commencé la numérotation à partir de zéro alors le nombre de


bits aurait changé. En effet si on commence par exemple à partir de 1 alors
l’adresse maximale serait (213 )10 = ( 10 0000 0000 0000 )2 donc il faut 14 bits
pour coder l’adresse de chacun des octets.
Exercice 4:
Représentez sur 8 Bits ( Si c’est possible ), dans la notation « Binaire Pur » les
entiers décimaux naturels suivants :
127 , 192 , 255 , 268
Solution Exercice N° 4
0 L’intervalle des entiers décimaux [0 , 28-1]=[ 0 , 255]
0 0 0 0 0 0 0 0
255
1 1 1 1 1 1 1 1

127= 128-1 = ( 27-1 ) 10 (1111111)2


0 1 1 1 1 1 1 1
7 6
(192)10=128+64 = 2 + 2 = (11000000)2
1 1 0 0 0 0 0 0
8
(255)10 = 256-1 = 2 - 1= (11 111111)2
1 1 1 1 1 1 1 1
On ne peut pas représenter 268 car cette valeur n’appartient pas à l’intervalle de
représentation voire elle tient sur 9 Bits. En effet :
(268)10 = 256+8+4 = 28 + 23+ 22 = ( 1 0 0 0 0 1 1 0 0 ) 2

Exercice 5:
Nous ne disposons que de 8 Bits pour coder , dans la notation « Binaire Pur »
les entiers naturels, effectuez les additions ci-dessous en binaire, et dites s’il y a
dépassement de capacité(département).
32 + 64 , 64 + 127 , 127 + 128 , 128 + 128 , 255 + 2

Solution Exercice N° 5
L’intervalle des entiers décimaux [0 , 28-1]=[ 0 , 255] en binaire pur
0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

32= ( 25) 10 = ( 1 0 0 0 0 0 ) 2 , 64= ( 26) 10 = ( 1 0 0 0 0 0 0 ) 2


0 0 1 0 0 0 0 0
+
0 1 0 0 0 0 0 0
= 98 sans débordement
0 1 1 0 0 0 0 0

64= ( 26) 10 = ( 1 0 0 0 0 0 0 ) 2 , 127= ( 27 -1) 10 = ( 1 1 1 1 1 1 1 ) 2


0 1 0 0 0 0 0 0
+
0 1 1 1 1 1 1 1
= 191 sans débordement
1 0 1 1 1 1 1 1

127= ( 27 -1) 10 = ( 1 1 1 1 1 1 1 ) 2 , 128= ( 27) 10 = ( 1 0 0 0 0 0 0 0 ) 2


0 1 1 1 1 1 1 1
+
1 0 0 0 0 0 0 0
= 255 sans débordement
1 1 1 1 1 1 1 1
128= ( 28) 10 = ( 1 0 0 0 0 0 0 0 ) 2 , 128= ( 27) 10 = ( 1 0 0 0 0 0 0 0 ) 2
( 1 0 0 0 0 0 0 0 ) + ( 1 0 0 0 0 0 0 0 ) = ( 1 0 0 0 0 0 0 0 0) on remarque que
cette somme tient sur 9 Bits donc il y a débordement.
(Remarque : 128+128=256 n’appartient pas à l’intervalle [ 0 , 255] )

255= ( 28 -1)10 = ( 1 1 1 1 1 1 1 1 ) 2 , 2= ( 21) 10 = ( 1 0) 2


( 1 1 1 1 1 1 1 1 ) + ( 0 0 0 0 0 0 1 0 ) = (1 0 0 0 0 0 0 0 1) on remarque que
cette somme tient sur 9 Bits donc il y a débordement.
(Remarque : 257+2=257 n’appartient pas à l’intervalle [ 0 , 255] )

Exercice 6:
Dans une machine M, les nombres signés sont représentés sur10 Bits en
notation complément à deux.
1- Quel est l’intervalle des entiers signés qu’on peut représenter ?
2- Codez ( Si c’est possible ) les nombres décimaux relatifs suivants :
+255, +300, +511, +512
-255, -300, -511, -512, -520
3- Quels sont nombres décimaux qui correspondent aux codes binaires
suivants :
(0001010111)2 , (0000111110)2 , (1111111111)2 , (1111110000)2 ,
(1111000001)2 ,

4- Effectuez, en Binaire les additions ci-dessous, données en base dix, et


dites s’il y a débordement ou pas.
255 - 255, 512 - 255, -128 - 128, 1 – 2 , 511 + 511 , -512 - 16

Solution Exercice N° 6

1) Les nombres positifs [1 , 29-1]=[ 0 , 512-1] = [ 0 , 511]


0 0 0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1 1 1

Les nombres négatifs [-29, -1] = [ -512 , -1]


1 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1
2)
Représentation de 255= ( 28 -1)10 = ( 1 1 1 1 1 1 1 1 ) 2
0 0 1 1 1 1 1 1 1 1
Pour représenter -255 il faut faire le complément à 2 de toute la configuration
De +255 sur 10 bits
1 1 0 0 0 0 0 0 0 1

Représentation de 300= 256+32+ 8+4= ( 28 + 25+23+22)10=(1 0 0 1 0 1 1 0 0 ) 2


0 1 0 0 1 0 1 1 0 0
Pour représenter -300 il faut faire le complément à 2 de toute la configuration
De +300 sur 10 bits
1 0 1 1 0 1 0 1 0 0

Représentation de 511= 512-1=( 29-1)10 = ( 1 1 1 1 1 1 1 1 1 ) 2


0 1 1 1 1 1 1 1 1 1
Pour représenter -511 il faut faire le complément à 2 de toute la configuration
De +511sur 10 bits
1 0 0 0 0 0 0 0 0 1

Représentation de 512=( 29)10 = ( 1 0 0 0 0 0 0 0 0 0 ) 2


Pour représenter +512 0 1 0 0 0 0 0 0 0 0 0 il nous faut 11 Bits
Remarque : 512 [0 , 511]
Par contre - 512 on peut la représenter comme suit :
1 0 0 0 0 0 0 0 0 0

Représentation de -520, On ne peut pas le représenter sur 10 Bits


Remarque : -512 [-512 , -1]

3)

0 0 0 1 0 1 0 1 1 1
L’équivalent de la configuration ci-dessus est :
+( 26 + 24 + 22+21+20)10 = + 64+16+4+2+1 = (+ 87 )10

0 0 0 0 1 1 1 1 1 0
L’équivalent de la configuration ci-dessus est :
+( 25 + 24 + 23+22+21)10 = + 32+16+8+4+2 = (+ 62 )10
1 1 1 1 1 1 1 1 1 1
La configuration ci-dessus commence par 0 donc c’est la configuration d’une
valeur décimale négative : il faut d’abord faire le complément à 2 de toute cette
configuration sur 10 Bits, ensuite la convertir en décimal :
En effet le complément à 2 de la configuration ci-dessus est :
0 0 0 0 0 0 0 0 0 1
0
L’équivalent de la configuration ci-dessus est :(2 )10 = +(1 )10
Le résultat est : ( -1 )10

1 1 1 1 1 1 0 0 0 0
La configuration ci-dessus commence par 0 donc c’est la configuration d’une
valeur décimale négative : il faut d’abord faire le complément à 2 de toute cette
configuration sur 10 Bits, ensuite la convertir en décimal :
En effet le complément à 2 de la configuration ci-dessus est :
0 0 0 0 0 1 0 0 0 0
4
L’équivalent de la configuration ci-dessus est :(2 )10 = +(16)10
Le résultat est : ( -16 )10

1 1 1 1 0 0 0 0 0 1
La configuration ci-dessus commence par 0 donc c’est la configuration d’une
valeur décimale négative : il faut d’abord faire le complément à 2 de toute cette
configuration sur 10 Bits, ensuite la convertir en décimal :
En effet le complément à 2 de la configuration ci-dessus est :
0 0 0 0 1 1 1 1 1 1
6
L’équivalent de la configuration ci-dessus est :(2 -1)10 = +(63)10
Le résultat est : ( -63 )10

4) 255 – 255 =0
255
0 0 1 1 1 1 1 1 1 1
- 255
0 0 1 1 1 1 1 1 1 1
= 0 sans débordement
0 0 0 0 0 0 0 0 0 0
cette opération en binaire à l’intérieur de la machine se fait comme suit :
255
0 0 1 1 1 1 1 1 1 1
+ C2 -255 sans tenir compte de la retenue générée au-delà des 10 bits
1 1 0 0 0 0 0 0 0 1
= 0 sans débordement
1 0 0 0 0 0 0 0 0 0 0

512 – 255 = - ( - 512 + 255) = +257


cette opération en binaire à l’intérieur de la machine se fait comme suit :
C2 -512
1 0 0 0 0 0 0 0 0 0
+ 255 sans tenir compte de la retenue générée au-delà des 10 bits
0 0 1 1 1 1 1 1 1 1
=
1 0 1 1 1 1 1 1 1 1
Ensuite on fait le complément à 2 de la configuration ci-dessous et le résultat est
0 1 0 0 0 0 0 0 0 1
8 0
= +( 2 + 2 ) = 256+1 = + 257 pas de débordement

-128 – 128 = - 256 cette opération en binaire à l’intérieur de la machine se fait


comme suit :
C2 -128
1 1 1 0 0 0 0 0 0 0
+ C2 -128 sans tenir compte de la retenue générée au-delà des 10 bits
1 1 1 0 0 0 0 0 0 0
= sans tenir compte de la retenue.
1 1 1 0 0 0 0 0 0 0 0
Ensuite on fait le complément à 2 de la configuration ci-dessous et le résultat est
0 1 0 0 0 0 0 0 0 0
8
= -( 2 ) = -256
Remarque : on a fait l’addition de 2 nombres négatifs et on a obtenu une valeur
négative donc il n’y a pas de débordement.
511 + 511 = 1022 [0 , 511] donc il faut s’attendre à un débordement
cette opération en binaire à l’intérieur de la machine se fait comme suit :
511
0 1 1 1 1 1 1 1 1 1
+ 511
0 1 1 1 1 1 1 1 1 1
=
1 1 1 1 1 1 1 1 1 0
Ensuite on fait le complément à 2 de la configuration ci-dessous et le résultat est
0 0 0 0 0 0 0 0 1 0
1
= -( 2 ) = -2
Remarque : on a fait l’addition de 2 nombres positifs et on a obtenu une valeur
négative donc il y a de débordement.

-512 - 6 = - 518 [ 512 , -1] donc il faut s’attendre à un débordement


cette opération en binaire à l’intérieur de la machine se fait comme suit :
- 512
1 0 0 0 0 0 0 0 0 0
+ C2 -6
1 1 1 1 1 1 1 0 1 0
=
1 0 1 1 1 1 1 1 0 1 0
Le résultat sans tenir compte de la retenue est :
+( 28 + 27+ 26 + 25 + 24 + 23 + 21 )= + 256 +128+64+32+16+8+2 = + 506
Remarque : on a fait l’addition de 2 nombres négatifs et on a obtenu une valeur
positive donc il y a débordement.

Exercice 7:
La machine qui exécute l’algorithme ci-dessous (ou le programme
correspondant) code le type entier sur 16 bits en notation complément à deux ;
( on part de l’hypothèse qu’il n’y a pas de vérification des résultats de calcul) :
Variable A en entier ;
Début
A 32767 ;
A A + 32767 ;
Ecrire ( A ) ;
Fin.
À notre grande surprise l’exécution a affiché sur le dispositif de sortie la valeur
-2 au lieu de 65534.
1- Pouvez –vous justifier ce qui s’est produit ?
Justification :
32767 + 32767 = 65534 [0 , 215 -1]= [0 , 32767] donc il faut s’attendre à un
débordement, cette opération en binaire à l’intérieur de la machine se fait
comme suit :
32767
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 32767
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
=
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Remarque : on a fait l’addition de 2 nombres positifs et on a obtenu une valeur
négative donc il y a de débordement.
Si on fait le complément à 2 de la valeur obtenue on aura :
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
=+( 2)10
Donc le résultat affiché serait -2
2- Pouvez vous prédire ce que va afficher l’algorithme ci-dessous ou sa
traduction en langage de programmation :
Variable A en entier ;
Début
A -32768 ;
A A-8;
Ecrire ( A ) ;
Fin.
-32768 - 8 = - 32774 [ 512 , -1] donc il faut s’attendre à un débordement
cette opération en binaire à l’intérieur de la machine se fait comme suit :
- 32768
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ C2 -8
1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
=
1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
Le résultat sans tenir compte de la retenue est :
+( 214 + 213+ 212 + 211 + 210 + 29 + 28 +27 + 26 + 25 + 24 + 23+21)=+32760
Remarque : on a fait l’addition de 2 nombres négatifs et on a obtenu une valeur
positive donc il y a débordement.

Solution Exercice N° 7

Exercice 6: Représentation des Nombres Réels en Virgule Flottante


Soit le format suivant :

S E +31: Exposant M: Mantisse

<1 Bit> <--------6 Bits------------> <-------------9 Bits------------------>

N= 1.M*2E

Dans la machine M, les nombres réels sont représentés selon le format virgule
flottante. La mantisse et son signe sont dans la notation signe et valeur absolue
sur 10 Bits. Le signe occupe le Bit de fort poids ( 0 pour plus et 1 pour
moins), la mantisse est fractionnaire et normalisée ( de la forme 1.bbb…bb).
l’exposant est exprimé ( sur 6 Bits) dans la notation en excédent de 31 et est
compris entre -30 et 31 inclus. Les valeur 0 et 63 sont réservés, comme expliqué
dans le cours. L’exposant suit le signe dans le format.

-Donner la représentation binaire des nombres réels suivants :


+0.75*210 , +0.25*2-1 , -24 = -(1.0)2*2-4 , -0.625*2-8

-Quels sont les nombres dont les écritures sont :


( 4D40)16 , ( 4FC4)16 ,( BD00)16, ( B420)16

4 D 4 0
0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0
4 F C 4
0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0
B D 0 0
1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0
B 4 2 0
1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0
-Donner les intervalles au-delà desquels il y a overflow, underflow.

-Donner l’écriture de plus ou moins l’infinité et celle des NANs.

Rappel: Tableau récapitulatif des réels sur 16 Bits

TYPES EXPOSANT MANTISSE


Les Zéros 000000 0
Denormalisés 000000 0
Normalisés 000001 Libre
111110
Infinis 111111 0
NAN:Not a Number 111111 0

Solution EXO 8
8.1)

+0.75*210 = ( 0.11* 210 ) 2= ( 1.1* 29 )2 ; Mantisse= 100000000 , E = 9

E+31= 9+31= 40 = (101000)2

0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0

+0.25*2-1 = ( 0.01* 2-1 ) = ( 1.0* 2-3 ) ; Mantisse= 000000000 , E = -3

E+31= -3+31 = 28= (11100)2

0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0

-24 = -(1.0)2*2-4 ; Mantisse= 000000000 , E = -4 , E+31=-4+31=27=(11011)2

1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0

-0.625*2-8 = ( 0.101* 2-8) = ( 1.01* 2-9) ; Mantisse= 010000000 , E = -9

E+31=-9+31=22=(10110)2

1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0
8.2)

0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0

N= 1.M*2E ; M=101000000 ; E+31=100110 =38 ; E= 38-31=7

N=1.101*27 = 1101*24 = 13.0 *16 =208.0

0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0

N= 1.M*2E ; M=111000100 ; E+31=100111 =39 ; E= 39-31=8

N=1.1110001 *28= 1111.0001*25= 15.0625*32 =482

1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0

N= -1.M*2E ; M=-100000000 ; E+31=11110 =30 ; E= 30-31=-1

N=-1.1 *2- 1 = -0.11= -0.75

1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0

N= -1.M*2E ; M=-000100000 ; E+31=11010 =26 ; E= 26-31=-5

N=-1.0001 *2- 5 = -0.10001*2-4 = 0,53125* 2-4 = 0,033203125

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
La configuration ci-dessus est la représentation du 0+

N= 1.M*2E ; M=000000000 ; E+31=0000000=0 ; E= 0-31=-31

N=1.0 *2-31 = 2-31

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c’est la représentation du 0-

N= -1.M*2E ; M=-000000000 ; E+31=0000000=0 ; E= 0-31=-31

N=-1.0 *2-31= -2-31


0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
c’est la représentation de + l’infini=+

N= 1.M*2E ; M=000000000 ; E+31=111111=63; E= 63-31=32

N=1.0 *232 = 232

1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
c’est la représentation de - l’infini=-

N= -1.M*2E ; M=-000000000 ; E+31=111111=63; E= 63-31=32

N=-1.0 *2-32 =- 232

Les intervalles au-delà desquels il y a overflow, underflow.


- 231*(1.111111111) - 2-30*(1.000000000)

-2-31*(0.000000001) 2-31*(0.000000001)

-232 -2-31 0 2-31 232 232*(1.000000001)

-2-31*(0.111111111) 2-31*(0.111111111) 232*(1.111111111)


-232*(1.111111111) -232*(1.000000001) 2-30*(1.000000000) 231*(1.111111111)
Dépassement sous-passement Dépassement
Overflow underflow Overflow

Ecriture des Not a numbers NANs 232*(1.000000001)


0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1
…….

232*(1.111111111)

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
L’intervalle [ 1.000000001x232 , 1.111111111x232]

1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1
…….

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[-1.111111111x232 ,-1.000000001x232 ]
Exercice 8.1: 0pérations sur des Nombres Réels en Virgule Flottante
Soit le format suivant :
S E +127: Exposant M: Mantisse

N= 1.M*2E
Effectuez les opérations suivantes si A=15 , B=10
A+ B , B-A , A*B , A/B
Indications : A+B= (41c80000)16 ; B-A= (c0a0000)16
A*B= (43160000 )16 ; A/B= (3fc00000)16

Solution Exercice 8.1

A= ( 15 )10 = ( 1111 )2 = 1.111* 23 ; M = 0.111 E=3 ; E+127= 130


( 130 )10 = ( 1 0 0 0 0 0 1 0 )2
0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

B= ( 10 )10 = ( 1010 )2 = 1.01* 23 ; M = 0.01 E=3 ; E+127= 130


( 130 )10 = ( 1 0 0 0 0 0 1 0 )2
0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

A+B= 1.111 23 + 1.01* 23= (1.111 + 1.010)* 23 =( 11.001 )*23 =


=( 1.1001 )*24 ; E+127 =4+127= ( 131 )10 = ( 1 0 0 0 0 0 1 1 )2
0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

4 1 C 8 0 0 0 0
A-B= 1.111 23 - 1.01* 23= (1.111 - 1.010)* 23 =( 0.101 )*23 =
=( 1.01 )*22 ; E+127 =2+127= ( 129 )10 = ( 1 0 0 0 0 0 0 1 )2
0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

4 0 A 0 0 0 0 0
3 3 6 6
A*B= 1.111 2 * 1.01* 2 = (1.111 * 1.010)* 2 = ( 10.01011)*2 =
(1.001011)*27 ; E+127 =7+127= ( 134 )10 = (10 0 0 0 1 1 0 )2
0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

4 3 1 6 0 0 0 0
1.111
*
1.01
= 1111
+ 0000
+ 1111
= 1 0.0 1 0 1 1
A/B= 1.111 23 / 1.01* 23= (1.111 / 1.010)* 20 =( 1.1 )*20 =
E+127 =0+127= ( 127 )10 = (1111111 )2
0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3 F C 0 0 0 0 0

1.111 | 1.010
- 1.010 | 1.1
= 01010
- 1010
= 0000

Exercice 9: Représentation des Caractères


1- Codez Bonjour en ASCII (réponse en Décimal ) sachant que le code de
A en ASCII est 41 en Hexadécimal (65 en décimal) et le code de a est
61 en Hexadécimal(97 en décimal)
2- Codez votre Nom (réponse en HexaDécimal ) .
Solution Exercice 9

ASCII: Americain Standard Code for interchange information


Code qui tient sur 8 Bits ( on peut coder juqu’à 28 =256 Caractères)

B o n j o u r
en ASCII : 66 111 110 106 111 117 114

Le Nom P A S C A L

En ASCII 80 65 83 67 65 76
Exercice 10:

Comment sont codés les caractères dans votre environnement de programmation


du cours ALSDS ?
Pouvez –vous écrire deux petits programmes ( pas nécessairement maintenant),
au premier on donne le code ASCII, il nous donne le caractère ?
Au second on donne le caractère, il nous donne son code ASCII.

Solution Exercice 10

Program ascii_test1;
{$R+}
Uses CRT;
var Car:char;
Code:byte;
Begin
Clrscr;
Writeln(' Donnez un code d'' un caractere : ');
readln(Code);

writeln(' Le code : ',Code,' correspond au caractere : ',chr(Code));


readln;
end.

Program ascii_test2;
{$R+}
Uses CRt;
var Car:char;
Code:byte;
Begin
Clrscr;
Writeln(' Donnez un caractere : ');
readln(Car);

writeln(' LeCaractere : ',Car,' a pour code ASCII : ',ord(Car));


readln;
end.

Vous aimerez peut-être aussi