You are on page 1of 15

Groupe Eyrolles, 2005, ISBN : 2-212-11635-7

1
Information et codages
Des chiffres et des lettres. Ou comment matrialiser linformation ? Vers une premire approche de linformation La matire premire sur laquelle travaille un ordinateur est linformation et il est donc ncessaire de donner celle-ci une reprsentation adapte. Le fonctionnement des ordinateurs actuels reposant entirement sur le systme binaire, il est alors naturel que la reprsentation de linformation se fasse galement sous la forme de donnes binaires. Les informations traites dans ce chapitre sont dites informations simples : il sagit essentiellement de nombres et de mots. Aprs avoir introduit le bit comme unit de mesure de linformation, la premire partie est consacre aux codages des nombres (entiers et rels) et des caractres (lettres dun alphabet). Les dispositifs de stockage (mmoires) et de transport de linformation (rseaux) sont dpendants de lenvironnement physique dans lequel ils oprent. ce titre, ils peuvent introduire des altrations et ainsi provoquer la restitution de donnes errones. La deuxime partie du chapitre traite des techniques de dtection et de correction de ces erreurs. Sur un autre plan, le stockage et la transmission de donnes gnrent des cots dpendant de la taille de ces donnes. En se servant de la redondance inhrente toute information relle, la dernire partie du chapitre donne un aperu sur les techniques de compactage des donnes.

Architecture des ordinateurs

Information et quantit dinformation


Linformation est un lment de connaissance, donc une notion abstraite, concernant un lment du monde rel (un objet, un vnement rel, mais aussi une ide) et qui, pris dans un contexte dtermin, a une signication et une pertinence humaine. Cet lment de connaissance est susceptible dtre cod pour tre conserv, trait ou communiqu. Une information est fondamentalement un lment de savoir, cest--dire une ide dont la rsidence ou source premire est notre cerveau. Tant que nous navons qu rchir au sujet de cette ide, il suft de laisser faire nos neurones Le souci de la reprsentation de linformation apparat lorsque survient le besoin de procder une mmorisation externe, mme temporaire : soit parce que le traitement est trop fastidieux ou complexe pour tre effectu en une seule fois (ncessit de noter des rsultats intermdiaires) ; soit pour mmoriser cet lment de savoir pour le retrouver ultrieurement (numro de tlphone) ; soit encore parce que lon souhaite communiquer cette information un tiers (transmission dun savoir). Il faudra alors bien donner cette information une consistance physique. De lide en tte la transmission, il faut tre capable de donner linformation une matrialisation permettant de la transporter. La problmatique est la mme pour le stockage. Lcriture et la parole sont des exemples de reprsentation dune information, statique dans le premier cas (permet du stockage), dynamique dans le second (permet le transport). Donne La donne est une reprsentation conventionnelle dune information sous une forme adapte son traitement par ordinateur. Lopration de transformation dune information lui donnant une ralit physique est appele codage. Le codage de linformation produit une donne dont on attend quelle puisse restituer aussi dlement que possible linformation dorigine (interprtation de la donne). La donne est prise ici dans le contexte de son traitement par un ordinateur. Message Dans le cas dune communication, la donne doit tre dplace (voire recopie) dune source vers un destinataire en utilisant un certain support de transmission, support papier (carte, ruban), magntique (disquette), optique (CD-Rom), onde lectromagntique, acoustique Un ensemble de donnes en cours de transport constitue un message. Il est tout naturel quune mme information puisse tre code (matrialise) de diffrentes manires : par exemple, la notion de date peut tre exprime laide dun texte (suite de caractres, cinq mai mille neuf cents ) ou dun mot numrique, cest--dire une suite de chiffres comme 05051900 . Pour tre transmis, le texte rsultant peut tre

Information et codages CHAPITRE 1

support par des signaux sonores (tam-tam) ou lumineux (volutes de fume) pour devenir le message. Il ny a ainsi pas de manire unique doprer une reprsentation de linformation : on utilise le mode de reprsentation le plus appropri au contexte ou au traitement faire. Une donne est un modle de reprsentation dune information comme le portrait est un modle de reprsentation dun personnage : il y a autant de portraits possibles que de manires de voir le personnage, et ces portraits sont tous plus ou moins dles

Unit de mesure de linformation : le bit


Pourquoi mesurer linformation et surtout quoi mesurer ? Tant que notre lment de savoir occupe simplement nos neurones, il nest pas vraiment utile davoir une mesure de linformation. La mesure devient utile ds linstant o elle doit tre reprsente concrtement. Elle occupe alors un espace et du temps sur un support physique. Combien de place faut-il pour stocker cette information ? Combien de temps faut-il pour la transmettre ? Plutt que de vouloir valuer le sens ou la pertinence de cette information (smantique), il est avant tout utile de lvaluer sous la forme dun volume ou dune quantit. Ainsi, mesurerons-nous linformation pour estimer son cot de stockage ou son cot de transport, au mme titre que le nombre de pages dun livre et son poids permettent destimer la possibilit de le ranger sur une tagre ou dvaluer les ventuels frais dexpdition. Comment mesurer la quantit dune entit, a priori, purement abstraite ? Certaines professions utilisent une mesure de la quantit dinformation. Le journaliste, le romancier peuvent tre rmunrs en fonction dune quantit dinformation mesurable en nombre des lignes ou mots (cest--dire en fonction de la place prise par la reprsentation de linformation sur le support), ou alors, et cela risque dtre plus rmunrateur, en fonction de loriginalit, de linattendu de linformation dlivre (le scoop). Cette notion dinattendu est le point de dpart de la construction de lunit de mesure faite par Shannon : linattendu apporte une grande quantit dinformation, alors que le connu nen apporte aucune. Dire que le journal tlvis aura lieu ce soir 20h00 napporte aucune information, alors quun ash dinformation en pleine journe sera suppos tre associ une grande quantit dinformation. Linformation tant par dnition abstraite, la mesure de linformation ne peut sappuyer que sur un outillage destin la manipulation des abstractions. Dans le domaine concern, celui de la quantication de linattendu, ce sont les probabilits qui constituent le formalisme mathmatique le plus appropri. Pour dnir la quantit dinformation Q dune information, une variable alatoire X lui est associe. Le domaine de dnition de cette variable est lensemble des valeurs x pouvant tre prises par cette information. Ces valeurs sont supposes tre en nombre ni (la variable est dite discrte) et suivre une loi de probabilit connue. La dtermination de Q est faite sur la base suivante : sa valeur doit tre dautant plus grande que linformation est inattendue et tre nulle dans le cas dune information connue a priori. Elle est

Architecture des ordinateurs

positive ou nulle : il ny a pas danti-information Dun point de vue mathmatique, Q est dautant plus grande que la probabilit dune valeur x est faible et est nulle si la probabilit est gale 1 (ce qui est le cas dune constante). Q est construite comme une fonction, restant encore dnir, inverse de la probabilit : Q = f(1/p(x)) avec p(x) = 1 Q = 0 La loi de probabilit doit tre connue. En ralit, la dnition utilise ne sapplique quaux cas o toutes les valeurs sont quiprobables. Le calcul de la quantit dinformation est limit au cas dune loi de probabilit uniforme discrte. Ainsi, le calcul de la quantit dinformation de la variable associe au rsultat dun lancer de d na de sens que si celui-ci nest pas pip (ce qui se traduit par lhypothse de lquiprobabilit). Si n est le nombre de valeurs possibles alors p(x) est gale 1/n, soit p = 1/6 pour le d. Comment choisir la fonction f ? La dnition de la quantit dinformation est conue pour intgrer le fait quune variation de probabilit de 0,1 na pas le mme effet, du point de vue de linattendu, si lon passe dune probabilit de 0,8 0,9 ou dune probabilit de 0,1 0,2. Dans le premier cas, la probabilit ne change en relatif que de 10 %, alors que dans le second cas elle double la valeur. La fonction dnir nest donc pas linaire : elle doit tre plus sensible pour les valeurs faibles que pour les valeurs fortes. Ce type dvolution est habituellement bien pris en compte par la fonction logarithme. Dans ces conditions Q sexprime sous la forme : Q = logb (1/p(x)) o b est la base du logarithme. Cette fonction tant notre appareil de mesure de la quantit dinformation, il est maintenant ncessaire de ltalonner, cest--dire de dnir son unit de mesure. Avec la technologie actuelle de linformatique, linformation est reprsente laide de variables binaires (0 ou 1) quil est facile de caler sur des phnomnes physiques (un courant qui passe ou ne passe pas, une orientation nord-sud dun aimant). Ltalonnage est fait par rapport ce systme binaire. Par dnition, le bit (binary digit) est lunit dinformation apporte par une variable binaire dont les deux valeurs sont quiprobables. Daprs cette dnition, on a : Q = logb (1/p(x)) = 1 bit et comme p(x) = 1/2, il sen suit que b = 2. La formulation nale de la quantit dinformation donne par Claude Shannon est ainsi : Q = log2 (1/p(x)) bits Le bit est lunit de mesure de la quantit dinformation dans un systme binaire. Il faut faire la distinction entre le contenant et le contenu. Le contenant est llment de mmoire capable de stocker de linformation. La technologie actuelle de mmorisation, aussi bien pour la mmoire centrale semi-conducteurs, que pour les units de disques magntiques ou encore les CD-Rom optiques, est entirement base sur le systme binaire : le plus petit lment mmorisable correspond un 0 ou un 1, cest--dire une mmoire deux tats. Le plus petit contenant dinformation vaut 1 bit (log2 (1/0.5)).

Information et codages CHAPITRE 1

Une mmoire de un bit a deux tats possibles, une mmoire de deux bits a quatre tats et ainsi de suite (2n tats pour n bits). Il est noter, qualors que la quantit dinformation dune variable (le contenu) peut prendre nimporte quelle valeur (un nombre rel comme dans le cas du d), la mmoire (le contenant) est forcment exprime en nombre entier de bits. Pour la mmorisation dune information, il faut donc disposer dune mmoire avec assez de bits pour que le nombre de ses tats soit suprieur au nombre de valeurs possibles de la variable alatoire associe cette information. Cette rgle est illustre avec lexemple du d (gure 1-1).
Figure 1-1

D
0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1

Mmoires
0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

Les valeurs possibles tant au nombre de 6, la quantit dinformation Q de la variable associe au rsultat dun jet de d est gale log2 (6), soit Q = 2,58 bits. Il faut une mmoire de 3 bits donc 8 tats pour stocker le rsultat dun jet. Huit congurations sont donc disposition pour mmoriser les 6 valeurs. La rgle de codage utilise pour la mmorisation correspond ici lutilisation des 6 premiers nombres entiers pour reprsenter les 6 symboles chiffres inscrits sur le d. Cela revient laisser inutilises les deux congurations extrmes : le contenant vaut 3 bits et le contenu vaut 2,58 bits.
noter Si le d est jet 10 fois, on utilisera, pour des questions de commodit, une mmoire de 30 bits, alors quune mmoire de 26 bits serait sufsante (10 jets indpendants valent 10 2,58 soit 25,8 bits). Dans ce cas, il y a une perte de place, mais au prot de la commodit demploi.

Le mme raisonnement sapplique la quantit dinformation dun chiffre dcimal. Quelle est la quantit dinformation dun chiffre ? Il y a 10 chiffres que lon suppose quiprobables. Le calcul donne Q = log2 (10) 3,32 bits : il faut videmment 4 bits mmoire pour stocker un chiffre dcimal (il y a 16 congurations possibles mais 6 dentres elles ne sont pas utilises).

Architecture des ordinateurs

Un bit est rarement stock tout seul : gnralement la mmoire est structure sur la base dun groupe ordonn de 8 bits appel octet (byte en anglais) Un octet est une sorte de panier dans lequel chacun des 8 bits est dni par sa position ou son rang. Un octet permet de mmoriser une information 28 (256) valeurs possibles. Il sert couramment stocker les caractres dun texte (un caractre par octet) ou les nuances de gris dune image (une couleur par octet), voire mme des nombres si la prcision nest pas un critre retenu. La notion de quantit dinformation tant prcise, voyons maintenant les informations lmentaires qui feront lobjet dun codage : les nombres et les caractres. Commenons par les nombres, dabord les plus simples , les entiers, puis les rels.

Les nombres et leur codage


Le nombre est un concept que nos anctres ont cr pour rpondre deux besoins : celui de pouvoir compter les lments dun ensemble (nombres cardinaux) par exemple le comptage des animaux dun troupeau et celui de pouvoir ordonner (nombres ordinaux) des objets suivant un critre dtermin (classement dobjets par ordre de valeurs).
Un peu dhistoire La premire unit de troc admise dans la Grce pr-hellnistique fut le buf. Au VIIIe sicle av. J.-C., dans lIliade dHomre (XXIII, 705, 749-751 et au VI, 236), une femme habile mille travaux est ainsi value 4 bufs, larmure en bronze de Glaucos 9 bufs et celle de Diomde (en or) 100 bufs ; de plus, dans une liste de rcompenses, on voit se succder, dans lordre des valeurs dcroissantes, une coupe dargent cisel, un buf et un demi-talent dor. Et ce nest pas le hasard si le mot latin pecunia dont drivent nos termes pcule et pcuniaire veut dire fortune, monnaie, argent : il provient en effet de pecus, qui signie btail, troupeau . En outre, le sens propre du mot pecunia correspond l avoir en bufs . Le mot sanscrit rupa (do vient la roupie), comme les termes germains feo et vieh (auxquels est apparent le mot anglais fee, salaire ), constituent de mme un souvenir du temps o les proprits, les honoraires, les offrandes, voire les sacrices rituels taient valus en ttes de btail. Cest dailleurs encore en bufs que se fait lvaluation de la dot des jeunes lles dans certaines rgions dAfrique orientale. Et lon comprend que le latin capita, ttes (do dcapiter, couper la tte ), ait donn le mot franais capital. Histoire Universelle des Chiffres, p 180, G. Ifrah

Les nombres cardinaux ont des modes de reprsentation qui ont beaucoup vari au cours du temps en partant de simples encoches sur des btons, des empreintes sur des tablettes, des nuds dans des cordelettes pour arriver aux symboles styliss que constituent nos chiffres dits arabes . Un nombre est une entit abstraite, cest--dire une forme dinformation qui, dune manire ou dune autre, se doit dtre concrtise pour tre mmorise, traite ou communique. Le mme concept prend ainsi, en fonction du contexte dutilisation, des reprsentations diffrentes mais supposes quivalentes. Ainsi, 156, CLVI, cent cinquante-six et

Information et codages CHAPITRE 1

(hiroglyphe) sont toutes des reprsentations du mme nombre. Ce nombre cardinal est appel nombre entier naturel. Les nombres ordinaux sont, de leur ct, gnralement construits partir des nombres cardinaux en les sufxant de ier ou ime. Mais lusage, la diffrence entre le cardinal et lordinal nest pas toujours bien faite dans toutes les langues. Ainsi, nous dirons le premier juin , mais le lendemain sera couramment dsign par le 2 juin . En informatique, le nombre ordinal est reprsent comme un nombre cardinal.

Reprsentation des entiers naturels, les bases


Notre systme de reprsentation dcimal des nombres est un systme dit positionnel (NPZ, Numration de position munie dun zro).
Positionnel et additionnel Le systme est dit positionnel par opposition additionnel o chaque chiffre apporte sa contribution dans laddition qui dnit le nombre. Les chiffres gyptiens sont additionnels, les chiffres romains le sont partiellement. Dans un systme additionnel, il ny a pas besoin de zro.

La reprsentation de tout nombre sappuie sur un alphabet rduit de symboles, les chiffres de 0 9, et la position dun chiffre dans cette reprsentation indique son poids en puissance de 10 (units, dizaines, centaines, etc.). Le cardinal de lalphabet, soit 10, est appel base de la reprsentation. Le nombre quatre mille trois cent vingt sept devrait de fait scrire sous la forme 4 1 000 + 3 100 + 2 10 + 7, cest--dire : 4 103 + 3 102 + 2 101 + 7 100, mais se rduit 4 327 en NPZ. Par contre, toute position doit comporter un chiffre : si un poids, par exemple la centaine, nest pas prsent dans le nombre, il faut faire apparatre la nullit de ce poids en mettant le chiffre 0 au rang des centaines.
tymologie du mot chiffre Le mot franais chiffre vient de larabe sifr qui exprime lide de vide pour nommer le zro. Quant au mot zro, il vient de zero en italien qui serait une contraction de zero, avec l encore la mme racine arabe.

La reprsentation dcimale dun nombre N est la suite ordonne de chiffres { a p a p 1 a 1 a 0 } 0 a i < 10 qui est une reprsentation implicite dun dveloppement du type : N = a p 10 p + a p 1 10 p 1 + + a 0 10 0 Par exemple, pour le nombre 147 on obtient : a 0 = 7 , a 1 = 4 , a 2 = 1 . On notera que dans cet exemple, on part dj du rsultat connu puisque lon crit 147

Architecture des ordinateurs

La reprsentation a galement la caractristique dtre longueur variable, cest--dire que nous utilisons autant de chiffres que ncessaire : peu de chiffres pour un petit nombre, davantage pour un grand nombre, mais toujours en nombre sufsant. En dautres termes, il nous est possible davoir une prcision quasi innie.

Les bases
En arithmtique, tout nombre peut tre reprsent dans nimporte quelle base sous forme de somme des puissances de la base retenue. Ainsi pour une base S donne, on a : N = a p S p + a p 1 S p 1 + + a0 S 0 0 ai < S N =
p

ai S i
i=0

Les bases usuelles sont : 2, 8, 10 et la base 16. chaque base correspond un alphabet avec autant de symboles.
2 8 10 16 01 01234567 0123456789 0123456789ABCDEF en dcimal en hexadcimal en octal en binaire 9 + 1 = 1010 F + 1 = 1016 7 + 1 = 108 1 + 1 = 102

Dans le cas dune base de valeur infrieure 10, les chiffres de la base 10 sont repris dans lordre et en quantit sufsante. Par contre, pour la base 16, les 10 chiffres sont complts avec les six premires lettres de notre alphabet, de A F, en majuscules ou minuscules (gure 1-2).
Figure 1-2

Entiers en dcimal, binaire, octal et hexadcimal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

0 1 2 3 4 5 6 7 8 9 A B C D E F

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37

10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

Information et codages CHAPITRE 1

Le changement de base
Mathmatiquement toutes les bases sont quivalentes et les changements de base sont parfaitement valides. Le changement de base le plus frquent, en informatique, est le passage de la base 10 vers la base 2 (et rciproquement). Lalgorithme de changement de base, pour une base S cible donne, consiste extraire itrativement les coefcients bi de la nouvelle base S en prenant le reste de la division du nombre N par S. Le processus est ritr sur le quotient rsultant jusqu lobtention dun quotient nul. N est exprim dans sa base dorigine, la division est faite dans la base dorigine et le reste est reprsent dans la base de destination. Ainsi, le reste de la division de N par S donne lunit b0, le reste de la division du quotient obtenu par S donne llment de rang 1 b1 et ainsi de suite Lalgorithme est valable pour tout changement de base : il suft de faire les divisions dans la base de dpart (il faudra cependant rapprendre faire les divisions dans cette base). Dans le cas dune conversion de base 10 vers une base 2, nous obtenons par exemple : 2610 = ?2 26 10/2 = 13 10 13 10/2 = 610 610/2 310/2 do : 2610 = 110102 110/2 = 310 = 110 = 010 reste = 02 reste = 12 reste = 02 reste = 12 reste = 12

Utilisation de la base 16 (hexadcimal)


Lordinateur travaille en base 2 et lhomme en base 10. Lorsquil sagit de visualiser une longue suite binaire, le passage la base 10 nest pas forcment le plus utile pour lhomme. Par contre, la reprsentation en base 16 peut, elle, se rvler efcace. En effet le passage de la base 2 la base 16 (et rciproquement) est particulirement ais avec un codage par bloc : tout quartet (suite de quatre bits) peut tre interprt comme un nombre entre 0 et 15, soit entre 0 et F en base 16. La lecture rsultante est plus aise pour nous. 1010 01112 devient A7h et FA59h devient 1111 1010 0101 1001 en binaire. Lhexadcimal est ainsi frquemment utilis pour visualiser des contenus binaires.

Reprsentation machine
En machine, sauf cas particuliers, la reprsentation des nombres est faite avec un nombre xe de symboles binaires (donc de bits). Lensemble des symboles utiliss dans un codage constitue un alphabet (0 et 1 dans le cas binaire). Un assemblage de symboles constitue un mot du code ou codet. La liste des mots de code autoriss constitue le code. Dans nos langues naturelles, les mots ont une longueur variable. Lvolution normale dune langue vivante a tendance faire bouger cette longueur. Lorsquun mot apparat pour la premire fois, il est souvent long car construit comme une priphrase.

10

Architecture des ordinateurs

Loi de Zipf Cette constatation est mettre en parallle avec la loi de Zipf. Dans les annes 1930, Georges K. Zipf observe quen classant les mots dun texte, quelle que soit sa langue, par frquence dutilisation dcroissante, cette frquence est inversement proportionnelle son rang. Par exemple si le mot le plus frquent apparat 100 fois, de deuxime mot le plus frquent apparat 50 fois, etc. Prenons lexemple du mot automobile. Au fur et mesure du plus grand usage du mot, lefcacit tend le raccourcir, par exemple en auto. Les mots les plus frquents vont donc naturellement raccourcir et les mots utiliss plus rarement auront tendance rester long. Il en est de mme pour chemin de fer mtropolitain devenu mtro, machine laver le linge devenu lave-linge. Les sigles (SNCF) rentrent galement dans ce cadre.

Pour la machine lintelligence trs rudimentaire quest lordinateur, lefcacit sobtient par la standardisation et la rgularit dans les traitements. Un ordinateur travaille mieux sur des mots de longueur (taille) xe. Cette taille a eu du mal se ger, au cours du temps, sur une valeur bien dtermine, mais actuellement elle est cale sur des multiples de loctet : les mots sont de 8, 16, ou 32 bits et maintenant 64 bits. On parle alors de processeur 8 bits, 32 bits ou 64 bits. Il existe aussi des processeurs simples 4 bits. Le mot bit a ici bien sr le sens du contenant. La consquence dune taille xe en nombre de bits du mot est quun mot de ce code ne peut reprsenter quun nombre ni dentiers positifs. Cette limitation a un certain nombre de consquences, non seulement sur ltendue des entiers reprsentables, mais aussi sur les calculs intermdiaires. Pour illustrer le propos, prenons une calculette dcimale afchage de 3 chiffres. Les nombres reprsentables sont donc les entiers positifs N avec 0 N 999. La limitation impose aussi que le rsultat nal dune opration, ou un calcul intermdiaire, ne sorte pas de cette limite. Sil est possible de calculer 105 15, le rsultat de 15 105 sera faux car il ny a pas de place pour mettre le signe. De plus, les axiomes dassociativit et de commutativit de laddition ne sont plus forcment vris. Par exemple : 700 + (400 300) (700 + 400) 300. Dans le premier cas, le rsultat est juste, dans le second il est faux car il donne lieu un dbordement (700 + 400) au niveau du calcul intermdiaire.

Reprsentation des entiers naturels N


Les entiers positifs sont cods en binaire avec leur reprsentation positionnelle en base 2. Tout nombre entier positif est ainsi dni comme une somme de puissances de 2. Le codage est fait en oprant la dcomposition en puissance de 2 laide de lalgorithme des divisions successives par 2 vu prcdemment comme dans lexemple du changement de base 10 vers la base 2. Si la reprsentation sappuie sur un mot de 8 bits, alors ce sont les nombres de 0 255 qui sont reprsentables. Aucun nombre en dehors de cette plage de valeur ne pourra tre reprsent sur un octet. Plus gnralement, un mot de n bits permet de coder les nombres entiers naturels de 0 2n1.

Information et codages CHAPITRE 1

11

Un processeur travaille gnralement avec une longueur de mot xe, mais en fonction de ltendue des entiers naturels sur lesquels on veut travailler, il existe des artices pour travailler avec des mots plus longs. Les langages de programmation de haut niveau (C, Java, Fortran) permettent cette adaptation, indpendamment du type de processeur, en introduisant les types de variables avec diffrentes longueurs (entier court, long).

Reprsentation des entiers relatifs


Les entiers relatifs, ou entiers signs, sont les entiers positifs et ngatifs. Si la reprsentation des entiers naturels est unique de par lutilisation de la base 2 (unicit de la reprsentation positionnelle), il y a par contre plusieurs manires de coder les entiers signs. Les codages diffrent par la manire de partager les possibilits de toutes les congurations des bits du mot entre les nombres positifs et ngatifs et la manire de grer le signe. Par exemple, un des choix consiste reprsenter autant de nombres positifs que de ngatifs dans ltendue des valeurs possibles.

Le codage avec bit de signe (signe et valeur absolue)


Ce codage est le plus proche de notre systme dcimal. Le nombre est dcrit par deux entits ou champs diffrentes : le signe et le nombre positif qui correspond la valeur absolue de lentier sign. Il y a donc deux lments coder : le signe dune part un bit est sufsant , la valeur absolue dautre part. En reprenant un codage sur 8 bits, il faut donc rserver un bit pour le signe, et il nen reste plus que 7 de disponibles pour coder lentier naturel de la valeur absolue. On voit apparatre la notion de champ dans la reprsentation : le mot est structur en champs lintrieur duquel chaque suite de bits code un lment diffrent. La manire la plus naturelle de coder le signe est de coder le signe + par un 0 : il ny a ainsi pas de diffrence, ltendue des valeurs prs, entre le codage dun entier naturel et un entier relatif positif. Cette reprsentation est dite avec bit de signe : le signe et la valeur absolue sont cods sparment. On peut remarquer que ce codage fait apparatre deux reprsentations du zro. Il y a par consquent autant de nombres positifs que de ngatifs. Exemple : codage de 26 et 26 sur 8 bits : 26 est cod par 0001 1010 et 26 est cod par 1001 1010. Si lon fait laddition binaire de 26 avec 26 en binaire avec retenue on obtient :
11 1 (retenues)

0001 1010 + 1001 1010 = 1011 0000 ce qui vaut 52 dans ce codage et non 0 !

12

Architecture des ordinateurs

On ne peut donc pas appliquer les rgles de laddition binaire ce type de reprsentation. Le codage avec bit de signe est simple, mais ce nest pas celui qui rend le plus efcace le calcul en machine.

Le codage en complment 2
Le principe du codage dit en complment 2 consiste ramener le cas des nombres ngatifs un nombre positif et rendre applicable directement le codage, maintenant connu, des entiers naturels. Pour un code sur n bits, la rgle de codage est : Si le nombre q coder est positif, on prend son code en base 2 classique. Si le nombre q est ngatif, on prend le code en base 2 classique de : q + 2n. Les nombres reprsentables sont ceux compris entre 2n1 et 2n1 1. Lappellation complment 2 est abusive : de fait, il faudrait dire complment 2 puissance n . Par exemple, si la reprsentation est faite sur 8 bits, alors il sagit du complment 256. Ainsi le codage de 26 donne, en complment 2, la valeur 26 + 256, cest--dire 230. Lentier ngatif 26 est cod dans cette technique comme sil sagissait de lentier positif 230. Le plus grand entier positif reprsentable est 281 1, soit 127. Tous les codes valeur entre 128 et 255 reprsentent donc des entiers ngatifs. La dcomposition en puissance de 2 de 230 donne 1110 0110. Do 2610 = 1110 0110 en complment deux. Notons que, cette fois-ci, si lon ajoute 26 26 le rsultat obtenu est bien celui attendu avec les rgles de laddition binaire.
1 1 1 1 1 1 (retenues)

0001 1010 + 1110 0110 = 0000 0000 ce qui vaut 0 dans ce code. Il faut aussi remarquer que la retenue nale ( gauche) est perdue : il ny a pas de bit pour la reprsenter.
Reprsentations particulires et valeurs limites

Il rsulte de cette mthode de codage que, pour les nombres ngatifs, le bit de poids fort est toujours 1 (mais ne pas confondre avec un bit de signe positionn indpendamment du codage de la valeur absolue). Le zro na quune seule reprsentation : 0000 0000 et 1 est cod par 1111 1111. Lintervalle de reprsentation nest pas symtrique : sur 8 bits, il va de 128 (10000000) + 127 (01111111). Il faut bien faire attention aux effets de bords : maximum + 1 = minimum !!! (127 + 1 = 128)

Information et codages CHAPITRE 1

13

Technique de codage des nombres en complment 2

Nous venons de dcrire le principe du codage, voyons maintenant la technique utilise pour le raliser. En fait, plutt que de procder par ajout de la puissance de 2, il existe un moyen trs simple de calculer le complment 2 dun nombre. Il sagit du passage par le complment 1 auquel on ajoute ensuite la valeur 1. La rgle est la suivante : Si le nombre est positif et infrieur 2n 1 1, il est cod comme un entier naturel (dcomposition en puissance de 2). Si le nombre est ngatif et suprieur 2n 1, alors : On code la valeur absolue du nombre comme un entier naturel (dcomposition en puissance de 2). On prend le complment 1 de ce codage : cela revient inverser tous les bits de la reprsentation (le complment 1 de 1 est 0, le complment 1 de 0 est 1). On ajoute 1 au rsultat obtenu (addition binaire). Exemple : codage de 26 : 26 = + soit 0001 1010 est le codage de la valeur absolue de 26. 1110 0101 est le complment 1 (inversion de chacun des bits). 1 est lajout de 1 au rsultat obtenu (addition binaire). 1110 0110 ce qui est bien la valeur code de 26 trouve prcdemment.

La transposition au systme binaire est immdiate : le complment 10 devient le complment 2 et le complment 9 devient celui 1. La particularit rside dans le fait que ce complment 1 est trivial obtenir, il suft dinverser le bit. titre dexemple, lopration prcdente peut tre revue en binaire avec lutilisation du complment 2 sur 10 bits. A = 71310 = 10 1100 10012 B = 41810 = 01 1010 00102 B1* = 10 0101 1101, est le complment 1 B2* = 10 0101 1110, est le complment 2 (= B1* + 1) AB: 10 1100 10012 + 10 0101 11102 = 01 0010 01112 : le bit de retenue gauche est perdu. Le rsultat correspond bien 295 en dcimal.

14

Architecture des ordinateurs

Un petit retour sur la soustraction dcimale Pour mieux comprendre les fondements de cet algorithme, il est bon de revenir notre systme dcimal et de revisiter quelque peu la soustraction. Dans le systme dcimal, les entiers naturels sont cods par les poids des puissances de 10 qui interviennent dans le nombre. Avant den venir la soustraction et les nombres ngatifs, revenons rapidement sur laddition. Celle-ci consiste sommer chacun des poids de mme rang des 2 nombres en partant de la droite (les units) et en effectuant des reports sur le poids suivant (suprieur) si ncessaire. Que faut-il connatre pour faire une addition lmentaire de 2 entiers naturels 1 chiffre ? Tout simplement la table daddition des nombres 1 chiffre. Pour introduire les nombres ngatifs, nous allons procder en deux temps en utilisant ce qui vient dtre appris pour laddition de deux entiers positifs. Pour ter une valeur un entier, on va soustraire un entier positif ce nombre. Comme on ne sait pas faire la soustraction, on va se ramener au cas connu de laddition. Soustraire un nombre positif revient additionner un nombre ngatif. Donc, si on sait faire la soustraction par lintermdiaire dune addition, on aura aussi rsolu la question de la reprsentation de lentier ngatif. Ainsi, pour retrancher B A il suft de lui ajouter un nombre sufsamment bien choisi. La technique utilise est celle du complment 10 (avec le mme abus de langage que pour le complment 2 : il faudrait dire complment la puissance de 10 ). Illustrons le propos avec le cas de la calculette 3 digits (chiffres dcimaux). Le complment 10 est alors le complment 103 cest--dire le complment 1000. Soit faire le calcul de C = A B avec A = 713 et B = 418. Pour retrancher B A on lui ajoute B10*, son complment 10. B10* = 103 B cest--dire (1000 418 = 582) do : C = A B = A + (103 B) 103 = A + B10* 1000 ( = 713 + 582 1000 = 1295 1000 = 295) Quel est lintrt de cette opration ? On vient de remplacer une soustraction de deux entiers quelconques par une addition et une soustraction particulire avec 1000 (le complment 10). Cest toujours une soustraction, mais elle est plus simple raliser car elle se fait par rapport une valeur xe. Le nouveau problme est : que faut-il ajouter 418 pour obtenir 1000, au lieu de la question : que faut-il ajouter 418 pour que le rsultat fasse 713 ? La connaissance de la table des additions un chiffre suft pour calculer le complment 10. Nous avons transform la soustraction en addition, mais il reste la quantit 103 (1000) quil faut retrancher : comme on ne dispose que de 3 chiffres sur notre calculette, il suft donc de lignorer. Plutt que de calculer directement le complment 10 (B10*), il est plus facile de le dnir par rapport au complment 9, B9* (soit 999), par B10* = B9* + 1. Or le complment 9 se calcule directement partir des tables apprises pour laddition : il suft pour un nombre 1 chiffre donn de connatre le nombre qui doit lui tre ajout pour que le rsultat soit gal 9. Cette opration est rpte pour tous les chiffres du nombre. Le complment 9 de 418 est dtermin par : 8 + 1 = 9 ; 1 + 8 = 9 ; 4 + 5 = 9. Ce qui donne B9* = 581, et nalement B10* = B9* + 1 = 581 + 1 = 582 et, pour laddition nale, nous obtenons : 713 + 582 = 1295. Pour retrancher 1000, il suft dignorer le quatrime chiffre. La soustraction devient laddition de loppos cod en complment 10. On peut donc partir sur cette base pour la reprsentation dun nombre entier ngatif : il suft de le coder sous la forme de complment 10.

You might also like