Vous êtes sur la page 1sur 20
ESSMCe Département IRIS 61, rue David d’Angers 75019 PARIS http://www.diderot.org COURS Codage des données Comprendre la maniére dont l'information est stockée en machine ‘Auteur Version - Date Nom du fichier G. VALET Version 1.1 - Sept 2009 cours-codage-donnees dock ‘Aprés quelques rappels de numération effectués, ce cours vous permettra de comprendre la maniére dont sont codées les informations en binaire en machine ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 Chapitre 1: Sommaire CCHAPITRE 1 : SOMMAIRE. 12 CCHAPITRE 2 : INTRODUCTION CCHAPITRE 3 : REPRESENTATION NUMERIQUE... A. NUMERATION. A. Rappels. 2. Repeésentation binate Les bases c.Unbit. 4. Un octet Le poids fort et faible ‘A2. Expression d’un nombre enti... 2. Exempie dela base 2 bs Exemple dela base 10 Bxemple de la base 36. 3. Passage de la bose 106 la base 2. 2. Méthode des divisions par 2 b, Méthode de reconnaissance des puissances de 2 A.4. Passage de la bose 16 6 la base 2. 3, Démonstration vo b.Exemple AS. Expression a’un nombre fractionnaire 2 Conversion en décimal. Conversion en binaire CCHAPITRE 4 : CODAGE DES DONNEES.... ‘A. CODAGE DES ENTERS. AL. Entiers naturel A2 Entiers relatifs 2. Principe ', Complément 3 c:Complément 8 4. Quelques exem ples. B. CODAGE DES NOMBRES REELS 1. Introduction 8.2 Principe. 2, Notation staneara , Remarque! 8.8 Représntation en « virgle tate» 2. Simple précision.. so b. Double précision.. ©. Généralisation 4. Conversion hexadécimal vers décimal 2. Conversion décimale vers hexadécimal C. COOAGE DES CARACTERES ALPHANUMERQUES.. C1. Lanorme ASCI.. C2. Lanorme ASCII étendue C3. Unicode. CCHAPITRE 5 : ANNEXES A. Coves ASCII. . o o o AJ. ASCII standard 518 2, Code ASCII étendu ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 Chapitre 2: Introduction Diune facon générale, il ya trois types d'informations & coder en machine : ® les informations de type numérique, * les informations de type alphanumérique, ™ les instructions, c'est programme. dire les ordres que l'on donne au microprocesseur pour exécuter le On appelle codage d'une donnée, la maniére dont elle est décrite sous une forme compréhensible par la machine, c'est-&-dire sous forme binaire. U’ordinateur ne pourra traiter et stocker les données que sous cette forme. Il a donc fallu inventer une représentation binaire des données La représentation d’un nombre sous forme binaire en vue de son traitement informatique impose que celui-ci soit codé sur un nombre de bits prédéfini, En fonction de la taille des nombres a traiter, le nombre de bits imposera certaines limitations. Par exemple, un entier non signé codé sur 8 bits se limitera a 2° = 256 possibilités soit un entier dont la valeur ne pourra excéder 255 (Le « zéro » est lui aussi pris en compte). ‘Seanne avee CamSeanner Codage des données Versio 7 1.1 - Sept 2009 Chapitre 3: Représentation numérique II stagit de représenter les nombres entiers et les nombres réels. A. Numération A.1. Rappels a. Représentation binaire Rappelons, que dans un systéme informatique, une information élémentaire est représentée par un élément binaire appelé bit. Le bit est donc l'unité d'information, qui a deux états, par exemple 0,1; Vrai, Faux, etc, Pour n bits, nous avons 2" représentations. Ce qui donne le tableau suivant pour n<4: N 1 2 3 4 Nombre de repr. P=2 im 2s 216 Représentations oO 00 000 0000 1 01 001 0001 10 010 0010 11 O11 0011 100 0100 101 0101 110 0110 11 0111 1000 1001 1010 1011 1100 1101 1110 1111 ‘odage des do T= Reproduction interdite ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 b. Les bases Voici également le tableau récapitulatif des 16 premiers nombres et leurs diverses représentations dans les bases les plus utilisées Décimale (10) Binaire (2) Octale (8) Hexadécimale (16) o 0 0 0 1 a a 1 2 10 2 2 3 1 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 11 7 7 8 1000 10 8 9 1001 1 9 10 1010 2 A iL 1011 3B B 12 1100 14 & 13 1101 15 D 14 1110 16 E 15 ia 7 F c. Un bit Cest le plus petit élément numérique pouvant prendre 2 valeurs : 0 ou 1. Ce terme est repris dans la définition d'un systéme informatisé pour spécifier le nombre d’éléments numériques (bits) pouvant étre simultanément (Systéme 32,64 ou 128 bits) d. Un octet Souvent rassemblés par paquet de 8 bits, I'octet symbolise un nombre binaire. Un systéme 32 bits est capable de traiter 4 octets simultanément. Le bit de poids fort est toujours situé a gauche et le bit de poids faible a droite. Le nombre se lit de gauche a droite Bitde poidsfort un bit —Bit de poids faible + \ + ofaloja}a — >_> Unquartet Un quartet —__\|__ > Un octet Représentation d'un octet Les systémes informatiques ne sont pas capables de traiter autre chose que des nombres binaires. Par exemple, une adresse IP (ex : 192.168.0.1) sera stockée dans un ordinateur sous la forme de 4 octets de 8 bits chacun. ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 e. Le poids fort et faible La notion de poids est trés employée dans le jargon informatique. Il s’agit tout simplement de donner un poids a chaque chiffre d'un nombre. Ce nombre peut étre représenté en binaire ou en décimal ou en tout autre base numérique. Si nous prenons "exemple d’un nombre décimal Chiffre de poids fort | Chiffre de poids faible 3}a}7 Dans cet exemple, augmenter de 1 le chiffre des centaines & pour conséquence d’incrémenter de 100 le nombre lui-méme, alors qu'augmenter de 1 le chiffre des dizaines renvient a incrémenter de 10. On voit bien que chaque chiffre n’a pas le méme poids par rapport au nombre représenté. Le poids fort est donc le chiffre le plus & gauche qui, sil est changé, provoquera une modification plus importante quant au nombre représenté que tous les autres situés plus droite. 1! s’agit donc du chiffre le plus significatif. A inverse, le poids faible d’un nombre est celui qui est le moins significatif. La valeur du poids dépend de la base numérique dans laquelle est représentée le nombre. Cette valeur suit la régle suivante ol x est égal a la base numérique : poids = base™"9 -1 (base = 10 pour décimal, base=2 pour binaire, base=16 pour hexadécimale) Par exemple, pour le nombre décimal suivant : Rang 324 yyy 3s [s Ee mas Nous pouvons écrire :3x10° +5 x10! +8x10° = 300+50+8=358 ome ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 A.2. Expression d’un nombre entier Un nombre entier N peut tre représenté par N= a, Xb" $4 ay Xb +a, Xb $a Xb $a Xd” ou: ™ best la base dela représentation (2 pour binaire, 10 pour décimal ou 16 pour hexadécimal ) ™ ay: Le chiffre de poids n constitué de l'un des symboles disponibles dans la base b (0 et 1 pour le binaire, 0..9 pour le décimal, etc..) On peut généraliser a. Exemple de la base 2 En base 2, il existe deux symboles : Oet 1 Le nombre binaire 1011001 donnera en décimal : IN = 1x 2°+0x 2° +1x 24+1x254+0X2? +02! +1x2° = 89) b. Exemple de la base 10 En base 10, il existe 10 symboles : 0, 1, 2, 3, 4,5, 6, 7,8,9 Le nombre décimal 78 donnera : IN = 7x 10' +8 x 10° = 78) c. Exemple de la base 16 En base 16, il existe 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,C, D, E, F Le nombre hexadécimal 6A1E donnera: N = 6X 16° + 10 x 167 +1 x 16! + 14 x 16° = 24576 + 2560 + 16 + 14 = 27166 ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 A.3. Passage de la base 10 a la base 2 a. Méthode des divisions par 2 Le nombre N peut étre représenté en base 2 en divisant successivement N par 2. Le reste de ces divisions successives forme la représentation binaire du nombre. Exemple pour N=397 397 |2 b, Méthode de reconnaissance des puissances de 2 Cette méthode consiste, pour des nombres de taille raisonnable, a exprimer, par reconnaissance, les les puissances de 2. Exemple avec 144 Représentation décimale 145 ajolojajojojoja A.4. Passage de la base 16 a la base 2 a. Démonstration En écrivant les représentations numériques d'un entier dans les 2 bases, on obtient : Nz = ++ 47X27 + ag X 26+ as x 25+ aay X 24 + ay X 23 + ay X 2? +a; X 2! +9 x 2° En factorisant par 2° on obtient : Ny = ut 24x (az X23 +g X 2? + a5 X24 a4) + (ag X29 + ay x2? + a X 2! + ay) ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 L’écriture de N en base 16 donne ceci My = @, X16" +--+, x16 +09 Par équivalence, on obtient : {ci a7 X23 +4522 +a5x2+ ay lay = az X23 +a, x2? +4, x2) +49 On voit qu’en regroupant les chiffres binaires par 4, on obtient I’équivalence en hexadécimal. b. Exemple En regroupant les chiffres binaires par 4, on obtient Ne= 8 6 A N2= 1000 0110 1010 Done (86A):¢ = (100001101010), A.5. Expression d’un nombre fractionnaire D'une facon générale, un nombre fractionnaire dans une base peut se représenter sous la forme X= a,xb'+a,xb°+a,xb > +--+a,xXb" ou = b: Base ™ a: Symboles de la base appartenant a I'ensemble {0,1, ..., (b — 1)} Par exemple : (0,375)19 = 3x 1071 +7 10-7 +5 x 1073 (0,10111001), = 1% 2-1 40x22 41x29 41x24 41x25 40K 254 0x2741x24 a. Conversion en décimal Pour calculer ce nombre en décimal, il suffit de connaitre les valeurs décimales des puissances négatives de2: (0,10111001), = 0.5 + 0.125 + 0.0625 + 0.03125 + 0.00390625 = (0.72265625)19 b. Conversion en binaire La conversion d’un nombre fractionnaire en binaire est un peu plus délicate. La précision du résultat dépend du nombre de bits réservé au codage du nombre. ‘Seanne avee CamSeanner [ES codage des données Version 1.1- Sept 2009 Rappelons l’expression générale suivante : X= a, xb! +a, xb? +a; Xb? +--+, xb” Pour la base 2 en particulier : [X= a, x2! +a,x2°+a,x2 > 4+--+4,xX2" Pour connaitre les différents termes ai, il faut multiplier par 2 jusqu’a ce que la partie fractionnaire soit, nulle. Soit par exemple pour convertir 0.72145 en binaire : feats eee (0.72145 x 2 = 1.44290 al=1 (0.44290 x 2 = 0.88580 ‘a2=0 (0.88580 x 2 = 1.77160 (0.77160 x 2 = 1.54320 (0.54320 x 2 = 1.08640 (0.08640 x 2 = 0.17280 (0.17280 x 2 = 0.34560 (0.34560 x 2 = 0.69120 0.69120 x 2 = 1.38240 (0.38240 x 2 = 0.76480 ai1=0 (0.76480 x 2 = 1.52960 all=1 (0.52960 x 2 = 1.05920 ai2=1 Etc, etc... Résultat sur 12 bits {0.101110001011) Done (0.72145):o = (0.101110001011). avec 12 bits de précision Un autre exemple de conversion de (0,6875)i0: Résultat Reed 0.6875 x 2 = 1.375, al=1 0.375 x2=0.75 ‘a2=0 O.75x2= 15 a3 OSx2= 0. aa= Résultat sur 4 bits (0.1011), GD Nous remarquons que la détermination des coefficients a; ne peut stopper que si la partie fractionnaire devient nulle et donc que ce calcul n‘est exact que dans ce cas. Le résultat sera d’autant plus précis que le nombre de bits servant 6 coder est grand. Codage des données - G. VALET - Reproduction interdite 10/20 ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 Chapitre 4: Codage des données A. Codage des entiers A.1. Entiers naturels Un entier naturel est un entier positif ou nul. Le nombre de bits choisi dépend de I'intervalle des nombres A coder. La régle est simple et consiste a évaluer cette fourchette en utilisant la régle suivante : 0 > nombre > 2°-1 n: nombre de bits utilisés Voici un tableau qui met en relation le nombre de bits avec les intervalles possibles Nombre de bits _Intervalles possibles Min Max 8 o 255 16 Oo 65535 32 0 4294967295 64 0 — 18446744073709551615 Le tableau suivant donne la représentation mémoire d’entiers naturels en fonction du nombre de bits : 322 16 ae ela aoa 1 [o Jo fo [o J Jo 20 8 MMLLLLLILLLLLLLL 9 | 0 [0 {1 |o [1 [o Jo 65535 wo fitiiitatatats fis saat ED Ell/////////////// ee EEE A.2. Entiers relatifs a. Principe Un entier relatif peut-étre positif, négatif ou nul. La représentation binaire doit done tenir compte du signe. Le codage des entiers relatifs s‘inspire du codage des entiers naturels a la différence que le bit de poids fort est réservé au signe ™ Bit de poids fort & 1 : Entier négatif ™ Bit de poids fort & 0 : Entier positif ou nul ‘Seanne avee CamSeanner Codage des données Version 1.1- Sept 2008 b. Complément a1 Le principe du complément a 1 est tres simple puisqu’ll s’agit d’inverser tous les bits du nombre pour trouver le nombre négatif. Voici la représentation en complément a 1. du nombre 23 : (&) Cette représentation pose un probléme lorsqu’on additionne les deux nombres : Nombre _| Binaire 223 [o [1 [1 J1 Jo fo i -123 [1 Jo Jo Jo |a [1 [1 [o -123+123 [1 [1 [1 [1 [1/1 1 Le résultat n’est pas nul, comme on pouvait s'y attendre. ¢. Complément a2 Afin de respecter les régles d’addition d’un nombre positif et d'un nombre négatif, la régle a suivre pour trouver le nombre négatif est celle du « complément a 2 ». Elle consiste & ™ Inverser tous les bits du nombre positif. Les « zéros » deviennent des « un » et vice-versa Ajouter 1 au nombre obtenu La représentation sera la suivante Nombre | Bits Représentation binaire 322 1e__[o Jo JoJo [oo fo ]1 Jo ]1 Jo fo fo fo Ji Jo “322 we [a fa fa [a [a [a [a fo fa Jo [a [a [2 fa [a [0 @® Remarque : Chaque bit du nombre positif est inversé puis on ajoute 1 pour trouver le nombre positif. On remarquera également que si on additionne (addition binaire bien entendu) un nombre avec son complément, on obtient 0 (avec une retenue) d. Quelques exemples v quelques exemples Nombre Représentation binaire 5 8 1)_Inversion des 5 8 2) Ajout de 1 Codage des données -G. VALET — Reproduction interdite ‘Seanne avee CamSeanner | Codage des données Version 1.1 - Sept 2009 ‘Nombre | Bits Représentation binaire 115 8 ofa fafa fofofafa 1)_Inversion des bits 1 |o [o [o [a [1 Jo lo “115 8 2) Ajout de 1 1 [o [o [o [a [a fo ]a Nombre Représentation binaire 127 8 Fra] eves ete eam) |e 1)_Inversion des bits o {oo jo lo lo lo “127 8 2) Ajout ded oo {ojolojoja B. Codage des nombres réels B.1. Introduction Le codage des nombres réels est appelé « codage des nombres a virgules flottantes ». Il existe plusieurs codages différents qui dépendent de I'architecture matérielle employée. Nous décrirons ici la plus répandue d’entre elles : La norme IEEE 754-1985. Elle est utilisée massivement par les microprocesseurs de type Intel. B.2. Principe a. Notation standard pe de la virgule flottante est & rapprocher de la notation exponentielle utilisée en mathématiques. En effet, pour représenter un nombre réel, il est possible d’utiliser 2 notations différentes : 2 Notations décimales du méme nombre 1234,7658 0,12347658 E™* équivalent a 0,12347658.10"* Dans le cas suivant, il est plus judicieux dutiliser la notation exponentielle afin d’économiser des chiffres significatifs : Eire ene een (0,0000134 0,134 E“ équivalent 3 0,134.10" Le codage a virgule flottante utilise le méme principe et distinguent 3 éléments : Le signe : Détermine s'il s‘agit d’un nombre négatif ou positif ™ Vexposant : Ordre de grandeur du nombre sous forme de puissances de 2 ™ La mantisse : Représente les chiffres significatifs du nombre & coder Codage des données - G. VALET ~ Reproduction interdite ‘Seanne avee CamSeanner Codage des données Version 1.1 - Sept 2003 De maniére générale, on peut représenter un nombre réel sous la forme X= mx b= = mest la mantisse ™ best la base ™ e est I'exposant b. Remarques Soit le nombre 0.123 E*, nous avons : = m=0.123 = b=10 me=3 Dans ce genre de notation, on remarque que la mantisse respecte la ragle suivante pour un nombre réel différent de 0: O1sm <1 D'une facon générale, on montre que

Vous aimerez peut-être aussi