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 ;