Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
1 1 1 1 1 1 1 1
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 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
Solution Exercice N° 2
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
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
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 ,
Solution Exercice N° 6
0 1 1 1 1 1 1 1 1 1
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
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
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
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.
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.
Solution EXO 8
8.1)
0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0
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
0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0
1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0
1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0
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+
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c’est la représentation du 0-
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
c’est la représentation de - l’infini=-
-2-31*(0.000000001) 2-31*(0.000000001)
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
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
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:
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);
Program ascii_test2;
{$R+}
Uses CRt;
var Car:char;
Code:byte;
Begin
Clrscr;
Writeln(' Donnez un caractere : ');
readln(Car);