an an-1 - EPST Tlemcen

Transcription

an an-1 - EPST Tlemcen
Chapitre II : la représentation et le codage d’information
IIntroduction :----------------------------------------------------Avant d’apprendre les instructions et les données, il est
important de comprendre les différents systèmes de
numérotation :
Système de numérotation base 10 (décimal)( 0 1 2 3 4 5 6 7 8 9)
3
2
1
0
(1991)10=1 . 10 + 9 . 10 + 9 . 10 + 1 . 10 =1000+900+90+1
Système de numérotation base 5 ( 0 1 2 3 4)
(1441)5=1 . 53 + 4 . 52 + 4 . 51 + 1 . 50 =125+100+20+1=(246)10
Système de numérotation base 4 (quarter) ( 0 1 2 3)
(1201)4=1 . 43 + 2 . 42 + 0 . 41 + 1 . 40 =64+32+0+1=(97)10
Système de numérotation base 8 (octal) ( 0 1 2 3 4 5 6 7)
(1201)8=1 . 83 + 2 . 82 + 0 . 81 + 1 . 80 =512+128+0+1=(641)10
Système de numérotation base 16 (hexadécimal) ( 0 1 2 3 4 5 6
7 8 9 A B C D E F) (A=10, B=11, C=12 ,D=13, E=14, F=15)
3
2
1
0
(12AF)16=1 . 16 + 2 . 16 + 10 . 16 + 15 . 16
=4096+256+160+15=(45271)10
Système de numérotation base 2 (binaire) ( 0 1)
(1001)2=1 . 23 + 0 . 22 + 0 . 21 + 1 . 20 =8+0+0+1=(9)10
La représentation d’un nombre dans une base B donnée
est : an an-1 ….. a0 = σ݊݅ൌͲ ܽ݅ ‫ ݅ ܤ‬avec 0൑ ܽ݅ ൏ ‫ܤ‬
Tableau résumant les 16 premier nombres des bases 10,2,8,16
Décimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Binaire
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Quarter
0
1
2
3
10
11
12
13
20
21
22
23
30
31
32
33
Octal
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
Hexadécimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
IIConversion des nombres entiers positifs:-----------------1- Conversion de la base B vers le décimal :
La valeur en décimal (base 10) d’un nombre an an-1 ….. a0 codé
dans une base B est = σ݊݅ൌͲ ܽ݅ ‫݅ ܤ‬
Exemple : (AA)16 = 10 . 161 + 10 . 160 = (170)10
(101)2 = 1 . 22+ 0 . 21 + 1 . 20 = (5)10
2- Conversion du décimal vers la base B:
Pour convertir un nombre décimal vers une base B :
- Diviser le nombre par B
- Diviser le quotient de la division par B jusqu'à ce que le
quotient soit égale à 0.
- Le résultat de la conversion est la juxtaposition inverse
des restes de la division
Exemple :onvertir le nombre décimal (12)10 vers la base 8,2,16
12|_8
12|_2
12|_16
4| 1|_8
0| 6|_2
C| 0Å je m’arrête
1| 0 Å je m’arrête
0|3|_2
(C)16
(14)8
1|1|_2
1|0 Å je m’arrête
(1100)2
3- Conversion de la base B vers la base B’:
Il suffit tous simplement de convertir le nombre de la base B
vers le décimal puis du décimale vers la base B’.
Exemple : convertir le nombre (1100)2 vers la base 5
(1100)2 = 1 . 23 + 1 . 22 + 0 . 21 + 0 . 20 = (12)10
12|_5
2|2|_5
donc (1100)2 = (22)5
2| 0 Å je m’arrête
4- Conversion de la base 2 vers la base 4,8,16:
Pour convertir de la base 2 vers la base 4 on démarre de la
droite vers la gauche et on choisit à chaque fois deux bits et on
les convertit vers la base 4.
Exemple : (1101)2 (101)2 (01101)2
(11)4
(31)4
(31)4
Pour convertir de la base 2 vers la base 8 on démarre de la
droite vers la gauche et on choisit à chaque fois trois bits et on
les convertit vers la base 8.
Exemple : (1101)2 (101)2 (11101)2
(5)8
(35)8
(15)8
Pour convertir de la base 2 vers la base 16 on démarre de la
droite vers la gauche et on choisit à chaque fois quatre bits et
on les convertit vers la base 16.
Exemple : (1101)2 (101)2 (11101)2
(5)16
(1D)16
(D)16
5- Conversion de la base 4,8,16 vers la base 2:
On procède de la même manière mais attention au nombre de
bits demandé.
Exemple : (31)4 =(1101)2 sur 4 bits
(31)4 = (01101)2 sur 5 bits
(35)8 = (11101)2 sur 5 bits et = (0011101)2 sur 7 bits
(1D)16 = (11101)2 sur 5 bits et =(00011101)2 sur 8 bits
IIIConversion des nombres réels positifs:-----------------1- Conversion de la base B vers le décimal :
Pour convertir un nombre réel positif, on rajoute une partie
fractionnaire après une virgule: an an-1 ….. a0.b1b2……..bm
La valeur décimal d’un tel nombre est donnée par le calcul de :
െ݆
an an-1 ….. a0.b1b2……..bm = σ݊݅ൌͲ ܽ݅ ‫ ݅ ܤ‬+σ݉
݆ ൌͳ ܾ݆ ‫ܤ‬
Exemple:(AF.01)16 = 10 . 161 + 15 . 160 + 0 . 16-1 + 1 .16-2
=(175.0039)16 avec 4 chiffres décimal après la virgule.
2- Conversion du décimal vers la base B:
- Convertir la partie décimale
- Convertir la partie fractionnaire,:
x Multiplier la partie fractionnaire par B
x Noter la partie entière obtenue
x Répéter les deux opérations précédentes jusqu'à ce
que la partie fractionnaire soit égale à 0 ou bien on
atteint la précision souhaitée.
Exemple : (5.55)10 vers le binaire avec trois bits après la virgule.
(5)10 = (101)2
0.55*2 = 1.1 | 0.1*2=0.2 | 0.2*2=0.4
Donc (5.55)10 = (101.100)2
3- Conversion de la base 2 vers la base 4,8,16 et vis versa:
Partie fractionnaire on démarre de la gauche vers la droite
(101.110)2=(11.3)4=(5.6)8=(5.6)16
(A.5)16=(1010.0101)2 , (7.2)8=(111.010)2 , (33.13)4=(1111.0111)2
Ecole préparatoire en science et technique – Tlemcen @2012 Chapitre II : le codage d’information
1
V‐
Représentation des nombres réels:‐‐‐‐‐‐‐‐‐‐‐‐‐ Il existe deux représentations possibles: 1. virgule fixe : déjà vue, par exemple (5.5)10 = (101.1)2 2. virgule flottante : cette méthode consiste à écrire le nombre E
décimal N sous la forme suivante : N=(‐1)SMB S : représente le signe +/‐ M : représente la mantisse E : représente l’exposant Exemple : 5.5 = + 5.5 . 100 = 0.55 . 101 = 55 .10‐1 =0.055 . 102 ‐ Pour convertir le nombre réel en binaire je dois l’écrire avec la forme précédente mais avec B=2, et dans ce cas on remplace e 1 E par e et M par 1+m. ( (‐1)S (1+m) B ) avec 0
2
2 Exemple : ‐5.5 = ‐ 1.375 . 2 = ‐ (1 +0.375) . 2 ‐ il ne reste qu’ convertir le S, M et E en binaire. 3. Norme IEEE‐754 : C’est un standard international qu’on doit suivre pour coder les nombres réels en virgule flottante. On trouve trois représentations : ‐ simple précision : nombre réel codé sur 32 bits (1 bit pour le signe, 8 bits pour l’exposant et 23 bits pour la mantisse. ‐ double précision : nombre réel codé sur 64 bits (1 bit pour le signe, 11 bits pour l’exposant et 52 bits pour la mantisse. ‐ double précision étendue : nombre réel codé sur 80 bits (1 bit pour le signe, 15 bits pour l’exposant et 64 bits pour la mantisse. 4. méthode de représentation en virgule flottante : ‐ il faut premièrement écrire le nombre N sous forme e
(‐1)S(1+m)2 , pour cela on procède comme suit : S : la valeur de S est égale à 1 si N<0 et égale à 0 sinon. e et m: on a trois cas possibles : * |N| 2 : on divise N par 2 jusqu'à ce que le nombre trouvé appartient à l’intervalle [1 2[. m sera la partie fractionnaire de ce nombre et e = nombres de divisions effectuées. * |N| 1 : on multiplie N par 2 jusqu'à ce que le nombre trouvé appartient à l’intervalle [1 2[. m sera la partie fractionnaire de ce nombre et e = ‐ nombres de divisions effectuées. * 1 | | 2 : e=0 et m = partie fractionnaire de N. ‐ Ensuite on doit représenter s, e et m en binaire, pour cela : n‐1 * représenter e : on calcule E=e+(2 ‐1) avec n le nombre de Nombres Sign magnitude Complément à 1 Complément à 2 bits de l’exposant (simple précision on a n=8 bits : E=e+127). 000 0 0 0 Puis on convertit E en binaire sur 8 bits. 001 1 1 1 * représenter m sur 23 bits : on procède comme la conversion 010 2 2 2 partie fractionnaire en notation de la virgule fixe : 011 3 3 3  Multiplier la partie fractionnaire par 2 100 ‐0=0 ‐3 (011) ‐4(100)  Noter la partie entière obtenue 101 ‐1 ‐2 (010) ‐3(011) 
Répéter les deux opérations précédentes 22 fois (51 110 ‐2 ‐1(001) ‐2(010) fois ou bien 63 fois). 111 ‐3 ‐0=0 ‐1(001) Remarque : intervalle 3
3 3
3 4
3
n‐1
n‐1
n‐1
n‐1
Pour faire sortir e on doit diviser et lorsqu’on divise on peut ‐(2 ‐1)
‐(2 ‐1)
‐2
2 ‐1 n‐1
n‐1
trouver des nombres avec un grand nombre de chiffres après 2 ‐1 2 ‐1 n
n
n
la virgule, pour cela on a tendance à se limiter à certains Valeurs 7 valeurs : 2 ‐1 7 valeurs : 2 ‐1 8 valeurs : 2 possibles nombres après la virgule. ‐ On remarque qu’avec les deux méthodes du signe et de la Exemple : représenter les nombres 3.25 et ‐0.0125 en virgule valeur absolue et le complément à 1 on a l’inconvénient de flottante IEE‐754 simple précision. représenter le zéro deux fois. Et qu’avec la méthode 5. convertir de la virgule flottante vers le décimal : complément à 2 l’opération d’addition sera équivalente en (10111110111100000000000000000000)2 décimale ((3)10 + (‐3)10 =0 et (011)2+(101)2=(000)2 sur 3 bits). S= 1 donc signe est – On remarque aussi qu’avec le complément à 2 on a plus de E=01111101=(125)10  e= E‐127=125‐127=‐2 valeurs possibles. m=11100000000000000000000=1.2‐1 + 1.2‐2 + 1 .2‐3=0.875 ‐ Pour les nombres non signés : intervalle : …………
……….. N= (‐1)S . (1+0.875) . 2‐2 = ‐ 0.46875 Et les valeurs possibles : ………………………………………………… Ecole préparatoire en science et technique – Tlemcen @2012 Chapitre II : le codage d’information
2
IV‐
Représentation des nombres entiers signés:‐‐‐‐‐‐‐‐‐‐‐‐‐ 1. Définitions : ‐ Le bit du poids le plus fort (MSB ;Most Significant Bit) : c’est le bit le plus à gauche (10011). Dans le cas d’un nombre signé il représente le signe (1 : négatif et 0 : positif). ‐ Le bit du poids le plus faible (LSB ;Less Significant Bit) : c’est le bit le plus à droite (10011). ‐ Le nombre de bits possibles : il représente sur combien de bits peut on coder un nombre. Par exemple pour coder le nombre non signé 7 en binaire on a besoin de 3 bits (111). ‐ le nombre de valeurs possibles : il représente le nombre de valeurs possibles que je peux coder en utilisant n bits. Par exemple, avec 2 bits on peut coder 4 nombres non signés (0,1,2,3) c‐a‐d 4=22 valeurs possibles. Pour n bits on peut coder n
2 valeurs non signés possibles. ‐ l’intervalle des valeurs possibles : il représente les valeurs possibles que je peux coder en utilisant n bits. Par exemple, avec 2 bits on peut coder 4 nombres nombres non signés n‐1
(0,1,2,3) c‐a‐d 0
3. Pour n bits on peut coder 0
2 . 2. Méthodes de représentation des nombres entiers signés : Il existe trois méthodes pour coder les entiers signés en binaire: a. Méthode du signe et de la valeur absolue (sign magnitude): Cette méthode consiste à utiliser le MSB pour représenter le signe et les autres bits pour représenter la valeur absolue du nombre à coder. Par exemple : (5)10=(0101)2 et (‐5)10=(1101)2 b. Méthode du complément à 1 : elle consiste à inverser les bits c‐a‐d convertir les 1 en 0 et les 0 en 1. Pour coder un nombre négatif, il suffit de complémenter son opposé positif. Le bit de poids fort code le signe. Par exemple (5)10 = (0101)2 et (‐5)10=(1010)2 . remarquer que si on applique le complément à 1 sur (‐5)10 on obtient le nombre positif (5)10. c. Méthode du complément à 2 : Complément à 2 = Complément à 1 + 1. Par exemple : (5)10=(0101)2 on inverse on obtient (1010)2 on ajoute 1 on obtient (1011)2. Remarquer que si on applique le complément à 2 su (‐5)10 on obtient le nombre positif (5)10. 3. résumé : on utilisant 3 bits ;