&RGDJHGHVLQIRUPDWLRQVQXPpULTXHV I. Les systmes de numration I.1. Numration dcimale Ce systme de numration, usuel dans la vie quotidienne, dispose de dix symboles (les chiffres) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. On travaille alors en base 10. Exemple : 7239 = 7.10 3 + 2.10 2 + 3.10 1 + 9.10 0 De manire gnrale, un nombre scrivant N = a n-1 ...a 1 a 0 (les a i
reprsentent les n chiffres) dans une base B (on dispose de B symboles) scrit : 0 0 1 1 2 2 1 1 B a B a B a B a N n- n- n- n- + + + + = On note alors N = (a n-1 ...a 1 a 0 ) B . La base B est note en indice, code en dcimal. I.2. Numration binaire La numration en base deux (ou numration binaire) utilise deux symboles 0 et 1. Cette base est trs commode pour distinguer les deux tats logiques fondamentaux. On crit : (a n-1 a n-2 ...a 1 a 0 ) 2 = a n-1 .2 n-1 + + a 0 .2 0 (expression de droite crite dans la base 10 et a i {0, 1}). Exemple : (4) 10 = 1.2 2 + 0.2 1 + 0.2 0 = (100) 2 Un nombre n chiffres en base deux distingue 2 n tats. Un tat binaire est appel bit (contraction de binary digit). Un bit prend les valeurs 0 ou 1. Les puissances successives de 2 (1, 2, 4, 8, 16, 32, 64, 128, 256,...) sont appeles poids binaires. En gnral, le poids du bit de rang n est 2 n (attention, on commence toujours au rang 0). Le bit de poids le plus fort est appel MSB (Most Significant Bit). Le bit de poids le plus faible est appel LSB (Less Significant Bit). I.3. Numration octale Ce systme utilise 8 symboles : 0, 1, 2, 3, 4, 5, 6, 7. Il nest plus gure employ aujourdhui, puisquil servait au codage des nombres dans les ordinateurs de premire gnration. 0 0 1 1 2 2 1 1 10 , 0 ... 1 8 8 8 8 8 ) ( ) ( a a a a N a a N n- n- n- n- n- + + + + = = I.4. Numration hexadcimale Le dveloppement des systmes microprogramms (mini- et micro-ordinateurs) a favoris lutilisation de ce code. Il comporte 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 0 0 1 1 2 2 1 1 10 , 0 ... 1 16 16 16 16 16 ) ( ) ( a a a a N a a N n- n- n- n- n- + + + + = = Un quartet, ou digit hexadcimal, volue entre 0 et 15 (en base 10) soit 0 et F en hexadcimal. Lassemblage de 2 quartets forme un octet qui varie de 0 255 (en dcimal). Pour indiquer la base 16, on peut la noter en indice suivant la manire gnrale. Mais dans la pratique on utilise une autre notation. On place le caractre $ (dollar) devant le nombre ou H derrire. Exemple (AA) 16 = AAH = $AA = A.16 1 +A.16 0 = 10.16+10.1 = (170) 10 @ CY Nur02 novembre 98 V3.1 2 / 4 Codage des informations numriques II. Changements de base - Conversions II.1. Conversion dcimal vers binaire Il existe plusieurs moyens deffectuer une telle conversion : par soustractions successives des poids binaires dans la diffrence de ltape prcdente ; par divisions successives par 2 du dividende de ltape prcdente. Les restes correspondants sont les bits conscutifs. Cest termin au premier dividende nul (que lon de compte pas). II.2. Conversion dcimal vers hexadcimal On reprend les deux mthodes prcdentes avec des poids hexadcimaux ou en divisant par 16. II.3. Dcomposition dun nombre dcimal en octal Les mmes principes sappliquent aussi. II.4. Toutes les conversions vers le dcimal Dans tous les cas, il ny a rien de particulier ajouter. Le principe de conversion est directement attach la manire dont on crit un nombre dans une base donne (Cf. dfinition). (N) B = a n-1 .B n-1 + + a 0 .B 0 o B est cod en dcimal La conversion est ralise automatiquement dans la mesure o le rsultat est crit directement dans la base dix. II.5. Les conversions directes (sans passer par le dcimal) Dans les bases usuelles (2, 8 et 16) utilises dans les systmes numriques, les conversions peuvent tre ralises par exploitation de proprits particulires aux nombres de ces bases. II.5.1. Binaire vers hexadcimal Un nombre hexadcimal est dcoupable en quartets facilement codables en binaire. Donc, pour convertir du binaire en hexadcimal, on divise le nombre binaire en tranches de quatre en partant de la droite. Chacun des paquets est ensuite converti en hexadcimal. Cette mthode revient fractionner en dcompositions successives. Exemple : (110101110001) 2 = (1101 0111 0001) 2 = D71H Explication : la mise en paquet revient effectuer une srie de factorisations partielles de la base de destination. Ici c'est 16 = 2 4 . Les rsidus constituent les chiffres de la conversion. Dans l'exemple prcdent, cela donne : (110101110001) 2 = 1.2 11 + 1.2 10 + 0.2 9 + 1.2 8 + 0.2 7 + 1.2 6 + 1.2 5 + 1.2 4 + 0.2 3 + 0.2 2 + 0.2 1 + 1.2 0 = {1.2 3 +1.2 2 +0.2 1 +1.2 0 }.(2 4 ) 2 +{0.2 3 +1.2 2 +1.2 1 +1.2 0 }.2 4 +{0.2 3 +0.2 2 +0.2 1 +1.2 0 } = 13.16 2 + 7.16 1 + 1.16 0 II.5.2. Hexadcimal vers binaire Cest le processus directement inverse, on crit chaque quartet sur 4 bits en compltant ventuellement avec des zros. Exemple : BC34H = (1011[B] 1100[C] 0011[3] 0100[4]) 2 = (1011 1100 0011 0100) 2 II.5.3. Binaire vers octal et inversement On reprend les mmes principes, sachant que 8 = 2 3 (en factorisant 8 = 2 3 ). @ CY Nur02 novembre 98 V3.1 3 / 4 Codage des informations numriques III. Codage des nombres Un code constitue une correspondance entre des symboles et des objets dsigner. Les codes du I sont pondrs : dans une base de travail donne, la valeur dun rang donn est un multiple par la base de celle du rang infrieur. Dautres codes ne sont pas pondrs, cest dire que la position dcriture ne correspond pas un poids des autres. Ils ne permettent deffectuer doprations arithmtiques. III.1. Codes pondrs III.1.1. Code naturel Le code binaire naturel et ses drivs (octal et hexadcimal) rpondent aux rgles classiques de larithmtique des nombres positifs (on peut calculer). III.1.2. Code dcimal cod binaire (DCB) Dans ce codage (BCD, Binary Coded Decimal en anglais), chaque digit dcimal est crit en binaire puis tous sont juxtaposs. Cette reprsentation est commode pour traiter les nombres dans le mode de reprsentation le plus adapt loprateur humain (lors dun affichage par exemple). Exemple : 7239 = (0111 0010 0011 1001) DCB . = (1110001000111) 2 . III.1.3. Reprsentation des nombres ngatifs : code complment 2 c 3 c 2 c 1 c 0 7 0 1 1 1 6 0 1 1 0 5 0 1 0 1 4 0 1 0 0 3 0 0 1 1 2 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 1 1 1 -2 1 1 1 0 -3 1 1 0 1 Le codage en complment 2 permet deffectuer des soustractions. Le complment 1 ou complment restreint (CR) dun nombre est obtenu en inversant chaque bit. On a donc x + CR(x) = 2 n -1 (n est le nombre de bits de x). Exemple : CR(22) = CR(10110) = 01001 (= 9 = 2 5 1 22). Il vient donc : x + CR(x) + 1 = 2 n . 2 n correspond un cycle et nest pas interprt (le bit extrieur la taille de codage est ignor). Par consquent, la valeur ngative x est reprsente par CR(x) + 1. La valeur CR(x) + 1 est appele complment vrai (CV) ou complment 2 de x. La codage par complment 2 (Tableau 1) permet la reprsentation des nombres ngatifs utilise dans les calculateurs. Le signe est le bit de poids fort : 0 pour le signe + (compatible avec le codage non sign) et 1 pour le signe ngatif. Tableau 1 Exemple : 7 4 = 7 + CV(4) = 0111 + CV(0100) = 0111 + 1011 + 1 = (1)0011 = +3. III.2. Codes non pondrs III.2.1. Code cyclique : code binaire rflchi ou code Gray Dans ce code, un seul bit change entre deux valeurs adjacentes. Il est employ ds que lon doit reprsenter une lvolution relle des variables o une seule change un instant (exemple dans les tables de Karnaugh). III.2.2. Codes redondants : dtecteur et correcteurs derreurs (pour info) Ces codes sont utiliss pour contrler les transmissions. Ils permettent de dtecter une erreur de bit lors dune transmission et parfois mme une correction de lerreur. Pour lessentiel, ces codes ne sont pas pondrs. IV. Extension aux codes non numriques Pour manipuler dautres lments que des nombres, il est ncessaire de les coder. Le plus connu de ces codes, et le plus utilis en particulier dans le monde informatique, est le code ASCII (American Standard Code for Information Interchange) prsent dans le Tableau 2. @ CY Nur02 novembre 98 V3.1 4 / 4 Codage des informations numriques Table des caractres de contrle (00 31) ASCII Caract. Signification ASCII Caract. Signification 00 NUL null, nul 16 DLE data link escape, chap. liaison donnes 01 SOH start of heading, dbut den-tte 17 DC1 device control 1, commande unit 1 02 STX start of text, dbut de texte 18 DC2 device control 2, commande unit 2 03 ETX end of text, fin de texte 19 DC3 device control 3, commande unit 3 04 EOT end of transmission, fin de transmission 20 DC4 device control 4, commande unit 4 05 ENQ enquiry, interrogation 21 NAK negative acknowledge, acc. rcep. ng. 06 ACK acknowledge, accus de rception 22 SYN synchronous idle, inactif synchronis 07 BEL bell, sonnerie 23 ETB end of transmission block, fin tran. bloc 08 BS backspace, espacement arrire 24 CAN cancel, annuler 09 HT horizontal tabulation, tabulation horiz. 25 EM end of medium, fin du support 10 LF line feed, saut de ligne 26 SUB substitute, substitut 11 VT vertical tabulation, tabulation verticale 27 ESC escape, chappement 12 FF form feed, saut de page 28 FS file separator, sparateur de fichiers 13 CR carriage return, retour chariot 29 GS group separator, sparateur de groupes 14 SO shift out, hors code 30 RS record separator, sp. denregistr. 15 SI shift in, en code 31 US unit separator, sparateur dunits Table des caractres imprimables (32 127) ou table ASCII standard ASCII Caractre. ASCII Caractre ASCII Caractre 32 SP (space, espace) 64 @ 96 ` 33 ! 65 A 97 a 34 " 66 B 98 b 35 # 67 C 99 c 36 $ 68 D 100 d 37 % 69 E 101 e 38 & 70 F 102 f 39 ' 71 G 103 g 40 ( 72 H 104 h 41 ) 73 I 105 i 42 * 74 J 106 j 43 + 75 K 107 k 44 , 76 L 108 l 45 - 77 M 109 m 46 . 78 N 110 n 47 / 79 O 111 o 48 0 80 P 112 p 49 1 81 Q 113 q 50 2 82 R 114 r 51 3 83 S 115 s 52 4 84 T 116 t 53 5 85 U 117 u 54 6 86 V 118 v 55 7 87 W 119 w 56 8 88 X 120 x 57 9 89 Y 121 y 58 : 90 Z 122 z 59 ; 91 [ 123 { 60 < 92 \ 124 | 61 = 93 ] 125 } 62 > 94 ^ 126 ~ 63 ? 95 _ 127 DEL (delete, sup.) Tableau 2 : codage ASCII.