Professional Documents
Culture Documents
Chapitre 3
http://ow.ly/2xKdB
<ous utilisons le s#st,me dcimal (base 10) dans nos activits quotidiennes =e s#st,me est bas sur dix s#mboles, de 0 & 3, avec une unit suprieure (di>aine, centaine, etc ) & c(aque fois que dix
1 (ttp5??p(#sics nist gov?cuu?-nits?binar# (tml
@idier 7Aller
/%1
aoBt 201/
Codage de l'information units sont comptabilises ='est un s#st,me positionnel, c'est%&%dire que l'endroit o0 se trouve le s#mbole dfinit sa valeur Cinsi, le 2 de ;2/ n'a pas la mDme valeur que le 2 de 1/2 En fait, ;2/ est l'abrviation de ;F102G2F101G/F100 2n peut selon ce principe imaginer une infinit de s#st,mes numriques fonds sur des bases diffrentes En informatique, outre la base 10, on utilise tr,s frquemment le s#st,me binaire (base 2) puisque l'alg,bre boolenne est & la base de l'lectronique numrique @eux s#mboles suffisent 5 0 et 1 2n utilise aussi tr,s souvent le s#st,me (exadcimal (base 1.) du fait de sa simplicit d'utilisation et de reprsentation pour les mots mac(ines (il est bien plus simple d'utilisation que le binaire) 'l faut alors six s#mboles supplmentaires 5 C (qui reprsente le 10), ) (11), = (12), @ (1/), E (11) et H (1;) !e tableau ci%dessous montre la reprsentation des nombres de 0 & 1; dans les bases 10, 2 et 1.
@cimal )inaire Jexadcimal 0 0 1 1 2 2 / / 1 1 ; ; . . I I * * 3 3 10 C 11 ) 12 = 1/ @ 11 E 1; H
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
!e nombre en base 10 est 2. G 2/ G 22 G 20 6 .1 G * G 1 G 1 6 II Cllons maintenant dans l'autre sens et crivons II en base 2 'l s'agit de faire une suite de divisions euclidiennes par 2 !e rsultat sera la juxtaposition des restes !e sc(ma ci%dessous explique la mt(ode mieux qu'un long discours 5
II s'crit donc en base 2 5 1001101 Ki on l'crit sur un octet, cela donne 5 01001101
@idier 7Aller
/%2
aoBt 201/
L'informatique au lyce
Chapitre 3
1001101 s'crit donc en base 1. 5 1@ :our convertir d'(exadcimal en binaire, il suffit de lire ce tableau de bas en (aut
'xercice 3.1
@onne> la mt(ode pour passer de la base dcimale & la base (exadcimale (dans les deux sens)
'xercice 3.2
=omplte> le tableau ci%dessous !'indice indique la base dans laquelle le nombre est crit )ases 2 10010101102 200210 C1=11. 10 1.
'xercice 3.3
Mcrive> en :#t(on un programme permettant de convertir un nombre d'une base de dpart d vers une base d'arrive a (d et a compris entre 2 et 1.)
@idier 7Aller
/%/
aoBt 201/
Codage de l'information )n entier relatif po"itif ou nul sera reprsent en binaire (base 2) comme un entier naturel, & la seule diffrence que le bit de poids fort (le bit situ & l'extrDme gauc(e) reprsente le signe 'l faut donc s'assurer pour un entier positif ou nul qu'il est & >ro (0 correspond & un signe positif, 1 & un signe ngatif) Cinsi, si on code un entier naturel sur 1 bits, le nombre le plus grand sera 0111 (c'est%&%dire I en base dcimale) Kur * bits (1 octet), l'intervalle de codage est N12*, 12IO Kur 1. bits (2 octets), l'intervalle de codage est N/2I.*, /2I.IO Kur /2 bits (1 octets), l'intervalle de codage est N211I1*/.1*, 211I1*/.1IO @'une mani,re gnrale le plus grand entier relatif positif cod sur n bits sera 2n11 )n entier relatif n#gatif sera reprsent grPce au codage en complment & deux
*rincipe d compl#ment + de x
Mcrire la valeur absolue du nombre en base 2 !e bit de poids fort doit Dtre gal & 0 'nverser les bits 5 les 0 deviennent des 1 et vice versa 2n fait ce qu'on appelle le complment & un / 2n ajoute 1 au rsultat (les dpassements sont ignors) =ette opration correspond au calcul de 2nQxQ, o0 n est la longueur de la reprsentation et QxQ la valeur absolue du nombre & coder Cinsi 1 s'crit comme 2;.162;;6111111112, pour les nombres sur * bits 'xemple 2n dsire coder la valeur 19 sur * bits 'l suffit 5 1 d'crire 13 en binaire 5 00010011 2 d'crire son complment & 1 5 11101100 / et d'ajouter 1 5 11101101 !a reprsentation binaire de 19 sur * bits est donc 11101101 2n remarquera qu'en additionnant un nombre et son complment & deux on obtient 0 En effet, 00010011 G 11101101 6 00000000 (avec une retenue de 1 qui est limine) 1 2
,r c
:our transformer de tDte un nombre binaire en son complment & deux, on parcourt le nombre de droite & gauc(e en laissant inc(angs les bits jusqu'au premier 1 (compris), puis on inverse tous les bits suivants :renons comme exemple le nombre 20 5 00010100 1 2n garde la partie & droite telle quelle 5 000101-2 2n inverse la partie de gauc(e apr,s le premier un 5 111-1100 / Et voici 20 5 11101100
!e 1 juin 133., une fuse Criane ; a explos 10 secondes apr,s l'allumage !a fuse et son c(argement avaient coBt ;00 millions de dollars !a commission d'enquDte a rendu son rapport au bout de deux semaines 'l s'agissait d'une erreur de programmation dans le s#st,me inertiel de rfrence R un moment donn, un nombre cod en virgule flottante sur .1 bits (qui reprsentait la vitesse (ori>ontale de la fuse par rapport & la plate%forme de tir) tait converti en un entier sur 1. bits 7al(eureusement, le nombre en question tait plus grand que /2I.* (le plus grand entier que l'on peut coder sur 1. bits) et la conversion a t incorrecte
'xercice 3..
1 2 =ode> les entiers relatifs suivants sur * bits (1. si ncessaire) 5 1;., 1, ;., ;.12 Que valent en base dix les trois entiers relatifs suivants 5 01101100 11101101 1010101010101010 S
@idier 7Aller
/%1
aoBt 201/
L'informatique au lyce
Chapitre 3
'xercice 3./
Explique> ce rDve trange (source de l'image 5 (ttp5??x+cd com?;I1)
'xercice 3.0
9ransforme> 0,01010101012 en base 10 9ransforme> 11100,100012 en base 10
2n continue ainsi jusqu'& la prcision dsire 1ttention 2 -n nombre & dveloppement dcimal fini en base 10 ne l'est pas forcment en base 2
'xercice 3.3
9ransforme> 0,;.2;10 en base 2 9ransforme> 0,1;10 en base 2 9ransformer 12,310 en base 2
@idier 7Aller
/%;
aoBt 201/
Codage de l'information
'EEE, que l'on peut prononcer "i/e$5 Institute of Electrical and Electronics Engineers
=ertaines conditions sont toutefois & respecter pour les exposants 5 l'exposant 00000000 est interdit l'exposant 11111111 est interdit 2n s'en sert toutefois pour signaler des erreurs, on appelle alors cette configuration du nombre <a<, ce qui signifie " <ot a number $ il faut rajouter 12I (01111111) & l'exposant pour une conversion de dcimal vers un nombre rel binaire !es exposants peuvent ainsi aller de 2;1 & 2;; !a formule d'expression des nombres rels est ainsi la suivante 5 (1)US V 2U(E 12I) V (1 G ) S est le bit de signe et l'on comprend alors pourquoi 0 est positif (1U061), E est l'exposant auquel on doit bien ajouter 12I pour obtenir son quivalent cod, est la partie fractionnaire
'xemple
9raduisons en binaire, en utilisant la norme 'EEE I;1, le nombre .,.2; =odons d'abord la valeur absolue en binaire 5 .,.2;10 6 110,10102 <ous mettons ce nombre sous la forme 5 1$ partie fractionnaire 110,1010 6 1,1-1-1-F22 (22 dcale la virgule de 2 c(iffres vers la droite) !a partie fractionnaire tendue sur 2/ bits est donc 1-1 -1-- ---- ---- ---- ----. 'xpo"ant 6 12I G 2 6 12310 6 1000 00012 Kigne Exposant 7antisse 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 En (exadcimal 5 =0 @1 00 00
!e 2; fvrier 1331, pendant la 8uerre du 8olfe, une batterie amricaine de missiles :atriot, & @(aran (Crabie Kaoudite), a c(ou dans l'interception d'un missile Kcud ira+ien !e Kcud a frapp un baraquement de l'arme amricaine et a tu 2* soldats !a commission d'enquDte a conclu & un calcul incorrect du temps de parcours, dB & un probl,me d'arrondi !es nombres taient reprsents en virgule fixe sur 21 bits !e temps tait compt par l'(orloge interne du s#st,me en dixi,me de seconde 7al(eureusement, 1?10 n'a pas d'criture finie dans le s#st,me binaire 5 1?10 6 0,1 (dans le s#st,me dcimal) 6 0,0001100110011001100110011 (dans le s#st,me binaire) !'ordinateur de bord arrondissait 1?10 & 21 c(iffres, d'o0 une petite erreur dans le dcompte du temps pour c(aque 1?10 de seconde Cu moment de l'attaque, la batterie de missile :atriot tait allume depuis environ 100 (eures, ce qui a entraWn une accumulation des erreurs d'arrondi de 0,/1 s :endant ce temps, un missile Kcud parcourt environ ;00 m, ce qui explique que le :atriot soit pass & cXt de sa cible
@idier 7Aller
/%.
aoBt 201/
L'informatique au lyce
Chapitre 3
!a norme CK='' permet ainsi & toutes sortes de mac(ines de stoc+er, anal#ser et communiquer de l'information textuelle En particulier, la quasi%totalit des ordinateurs personnels et des stations de travail utilisent l'encodage CK='' !e code CK='' de base reprsentait les caract,res sur I bits (c'est% &%dire 12* caract,res possibles, de 0 & 12I) !es codes 0 & /1 ne sont pas des caract,res 2n les appelle caract,res de contrXle car ils permettent de faire des actions telles que 5 retour & la ligne (Carriage return) bip sonore (!udible bell) !es codes .; & 30 reprsentent les majuscules !es codes 3I & 122 reprsentent les minuscules (il suffit de modifier le .,me bit pour passer de majuscules & minuscules, c'est%&%dire ajouter /2 au code CK='' en base dcimale)
@idier 7Aller
/%I
aoBt 201/
Codage de l'information !e code CK='' a t mis au point pour la langue anglaise, il ne contient donc pas de caract,res accentus, ni de caract,res spcifiques & une langue !e code CK='' a donc t tendu & * bits pour pouvoir coder plus de caract,res (on parle d'ailleurs de code CK='' tendu ) =ette norme s'appelle 'K2%**;3 et se dcline par exemple en 'K2%**;3%1 lorsqu'elle tend l'CK='' avec les caract,res accentus d'Europe occidentale, et qui est souvent appele !atin%1 ou Europe occidentale
'l existe d'autres normes que l'CK='', comme l'-nicode par exemple, qui prsentent l'avantage de proposer une version unifie des diffrents encodages de caract,res compltant l'CK='' mais aussi de permettre l'encodage de caract,res autres que ceux de l'alp(abet latin -nicode dfinit des di>aines de milliers de codes, mais les 12* premiers restent compatibles avec CK='' @ans le codage -9H%*, c(aque point de code est cod sur une suite d'un & quatre octets 'l a t conLu pour Dtre compatible avec certains logiciels originellement prvus pour traiter des caract,res d'un seul octet
@idier 7Aller
/%*
aoBt 201/
L'informatique au lyce
Chapitre 3
9outes ces normes diffrentes et leurs incompatibilits partielles sont la cause des probl,mes que l'on rencontre parfois avec les caract,res accentus ='est pour cette raison qu'il vaut mieux, quand on crit des courriels & l'tranger, n'utiliser que des caract,res non accentus
*o r7 oi ce" code" 6
@es canaux de transmission imparfaits entraWnant des erreurs lors des c(anges de donnes !a probabilit d'erreur sur une ligne tlp(onique est de 10%I (cela peut mDme atteindre 10%1) Cvec un taux d'erreur de 10%. et une connexion & 1 7o?s, en mo#enne * bits errons sont transmis c(aque seconde
*rincipe g#n#ral
=(aque suite de bits & transmettre est augmente par une autre suite de bits dite " de redondance $ ou " de contrXle $ :our c(aque suite de " bits transmise, on ajoute r bits 2n dit alors que l'on utilise un code C(n, ") avec n 6 " G r R la rception, les bits ajouts permettent d'effectuer des contrXles
@idier 7Aller
/%3
aoBt 201/
Codage de l'information
Calc l d chiffre&cl# d' n n m#ro 45B8&12n attribue une pondration & c(aque position (de 10 & 2 en allant en sens dcroissant) et on fait la somme des produits ainsi obtenus 2n conserve le reste de la division euclidienne de ce nombre par 11 !a cl s'obtient en retranc(ant ce nombre & 11 Ki le reste de la division euclidienne est 0, la cl de contrXle n'est pas 11 (11 % 0 6 11) mais 0 @e mDme, si le reste de la division euclidienne est 1, la cl de contrXle n'est pas 10 mais la lettre Z !e nombre 11 tant premier, une erreur portant sur un c(iffre entraWnera automatiquement une inco(rence du code de contrXle !a vrification du code de contrXle peut se faire en effectuant le mDme calcul sur le code 'K)< complet, en appliquant la pondration 1 au dixi,me c(iffre de la cl de contrXle (si ce c(iffre%cl est %, on lui attribue la valeur 10) 5 la somme pondre doit alors Dtre un multiple de 11 'xemple :our le numro 'K)< (& 3 c(iffres) 2%/;2**%011, quelle est la cl de contrXle S =ode 'K)< :ondration :roduit 2 10 20 / 3 2I ; * 10 2 I 11 * . 1* * ; 10 0 1 0 1 / 12 1 2 2
!a somme des produits est 2-3, dont le reste de la division euclidienne par 11 est / !a cl de contrXle est donc 11 % ; 6 0 !''K)< au complet est 5 2%/;2**%011&0 !a vrification de la cl compl,te & 10 c(iffres donne la somme pondre 20/ G . 6 203, qui est bien un multiple de 11
'xemple : la distance de Jamming entre 1011101 et 10-1-01 est 2 car deux bits sont diffrents 'l est sou(aitable d'avoir une certaine distance entre les mots envo#s, afin de dtecter s'il # a eu une erreur de transmission :ar exemple, si l'on a trois messages & transmettre de trois bits, il vaut mieux c(oisir les codages qui sont & distance 2 les uns des autres, par exemple 000, 110 et 101 En effet, si un seul bit est altr, on recevra un message impossible :ar contre, en utilisant 000, 001 et 010, un bit altr pourrait passer inaperLu
Bit de parit#
9ransmettons sept bits auxquels viendra s'ajouter un bit de parit 2n peut dfinir le bit de parit comme tant gal & >ro si la somme des autres bits est paire et & un dans le cas contraire 2n parle
@idier 7Aller
/%10
aoBt 201/
L'informatique au lyce
Chapitre 3
de parit paire Ki la somme des bits est impair, c'est qu'il # a eu une erreur de transmission 'xemple : 1010001 (I bits) devient 11010001 (* bits) =ette approc(e permet de dtecter les nombres d'erreurs impaires, mais un nombre pair d'erreurs passera inaperLu
@idier 7Aller
/%11
aoBt 201/
Codage de l'information C2 (en vert) colore les bits 1, ;, ., I =e sont les bits qu'il vrifie C1 (en bleu) vrifie les bits 2, /, ., I C0 (en rouge) vrifie les bits 1, /, ;, I 2n constate que c(aque bit de donnes est color d'une mani,re diffrente =ela permettra de retrouver la position d'une erreur
C0 vaut 0 pour pouvoir rendre pair 1G1G0 (les bits d'indices I, ;, /) C1 vaut 1 pour pouvoir rendre pair 1G0G0 (les bits d'indices I, ., /) C2 vaut 0 pour pouvoir rendre pair 1G0G1 (les bits d'indices I, ., ;) I 1 . 0 ; 1 1 / 0 2 1 1 -
'maginons que l'on reLoive le mot 0010010 (le bit de poids fort a t altr) C0 a la mauvaise valeur, car 0G1G0G0 est impair, donc il # a une erreur en position I, ;, / ou 1 C1 a la mauvaise valeur, car 0G0G0G1 est impair, donc il # a une erreur en position I, ., / ou 2 C2 a la mauvaise valeur, car 0G0G1G0 est impair, donc il # a une erreur en position I, ., ; ou 1 Mcrivons le nombre binaire C2C1C0 o0 Ci vaut 0 si le bit de contrXle Ci a la bonne valeur et 1 sinon 2n obtient ici 111, ce qui correspond & I en binaire !e bit erron est le numro I Que se passe%t%il si c'est un des bits de contrXle qui est altr S 'maginons que l'on ait reLu 1010011 (cette fois%ci, c'est le bit de poids faible qui a t altr) C0 a la mauvaise valeur, car 1G1G0G1 est impair 'l # a une erreur en position I, ;, / ou 1 C1 a la bonne valeur, car 1G0G0G1 est pair 'l n'# a pas d'erreur en position I, ., / et 2 C2 a la bonne valeur, car 1G0G1G0 est pair 'l n'# a pas d'erreur en position I, ., ; et 1 'ci, C2C1C0 vaut 001 !e bit erron est donc le numro 1
'xercice 3.;
4ous voule> envo#er le mot 1011 Quels bits de contrXle deve>%vous lui adjoindre et quelle squence transmettre>%vous alors S
'xercice 3.<
] a%t%il une erreur dans le mot suivant (Jamming I1) 5 1101101 S
Quels sont les bits de contrXle de parit S Quelles positions contrXle c(acun de ces bits S Quel est le message reLu S Est%ce que le message reLu correspond au message transmis S
@idier 7Aller
/%12
aoBt 201/
L'informatique au lyce
Chapitre 3
!e principe
!e principe de l'algorit(me de Juffman consiste & recoder les octets rencontrs dans un ensemble de donnes source avec des valeurs de longueur binaire variable !'unit de traitement est ramene au bit Juffman propose de recoder les donnes qui ont une occurrence tr,s faible sur une longueur binaire suprieure & la mo#enne, et recoder les donnes tr,s frquentes sur une longueur binaire tr,s courte Cinsi, pour les donnes rares, nous perdons quelques bits regagns pour les donnes rptitives :ar exemple, dans un fic(ier CK='' le " ^ $ apparaissant 10 fois aura un code tr,s long 5 0101000001000 'ci la perte est de 10 bits (10 x 1 bits), car sans compression, il serait cod sur * bits au lieu de 12 :ar contre, le caract,re le plus frquent comme le " e $ avec 200 apparitions sera cod par 1 !e gain sera de 1100 bits (I x 200 bits) 2n comprend l'intrDt d'une telle mt(ode @e plus, le codage de Juffman a une proprit de prfixe 5 une squence binaire ne peut jamais Dtre & la fois reprsentative d'un lment cod et constituer le dbut du code d'un autre lment Ki un caract,re est reprsent par la combinaison binaire 100 alors la combinaison 10001 ne peut Dtre le code d'aucune autre information @ans ce cas, l'algorit(me de dcodage interprterait les ; bits comme deux mots 5 100%01 =ette caractristique du codage de Juffman permet une codification & l'aide d'une structure d'arbre binaire 5
=#thode
Cu dpart, c(aque lettre a une tiquette correspondant & sa frquence (ou sa probabilit) d'apparition 'l # a autant d'arbres (& 1 sommet) que de lettres !'algorit(me c(oisit & c(aque tape les deux arbres d'tiquettes minimales, soit x et y, et les remplace par l'arbre form de x et y et a#ant comme tiquette la somme de l'tiquette de x et de l'tiquette de y !a figure ci%dessous reprsente les tapes de la construction d'un code de Juffman pour l'alp(abet source _C, ), =, @, E`, avec les frquences (C)61;, ())6I, (=)6., (@)6. et (E)6;
@idier 7Aller
/%1/
aoBt 201/
Codage de l'information
!e code d'une lettre est alors dtermin en suivant le c(emin depuis la racine de l'arbre jusqu'& la feuille associe & cette lettre en concatnant successivement un 0 ou un 1 selon que la branc(e suivie est & gauc(e ou & droite Cinsi, sur la figure ci%dessus, C60, )6100, =6101, @6110, E6111 :ar exemple, le mot " C))E $ serait cod 0100100111 :our dcoder, on lit simplement la c(aWne de bits de gauc(e & droite !e seul dcoupage possible, grPce & la proprit du prfixe, est 0% 100%100%111 =e principe de compression est aussi utilis dans le codage d'image 9'HH (9agged 'mage Hormat Hile) spcifi par 0icrosoft Corporation et !ldus Corporation 'l existe des mt(odes qui ne conservent pas exactement le contenu d'une image (mt(odes non conservatives) mais dont la reprsentation visuelle reste correcte Entre autres, il # a la mt(ode a:E8 (aoin :(otograp(ic Experts 8roup) qui utilise la compression de t#pe Juffman pour coder les informations d'une image 7algr son anciennet, cette mt(ode est toujours remise au goBt du jour, et offre des performances apprciables
'xercice 3.12
=onstruise> un codage de Juffman du message " ceciestuncodagede(uffman $ (on a supprim les espaces et la ponctuation pour simplifier la construction) 'l # a plusieurs codages de Juffman possibles 4rifie> la proprit du prfixe
@idier 7Aller
aoBt 201/
L'informatique au lyce
Chapitre 3
smartp(ones et les tlp(ones mobiles quips d'une application de lecture (lecteur de code QY ou 12 reader en anglais) !'avantage du code QY est sa facilit et rapidit d'utilisation et de cration :our lire un code QY, il suffit de lancer l'application de lecture et viser le code dans le mobile @e nombreuses pages beb offrent ces applications pour mobiles, gnralement sans frais En ce qui concerne l'criture, il # a plusieurs sites ^eb qui permettent de gnrer librement les codes QY, par exemple (ttp5??qrcode +a#^a com? 'ls peuvent stoc+er jusqu'& I0*3 caract,res numriques, 123. caract,res alp(anumriques ou 23;/ octets :ar rapport au code%barres traditionnel qui ne peut stoc+er que de 10 & 1/ caract,res, ils ont l'avantage de pouvoir stoc+er beaucoup d'informations tout en tant petits et rapides & scanner !e code QY est dfini comme un standard 'K2 ('E=1*001) !es cases noires et blanc(es servent & l'orientation du QY code 8rPce & ces trois carrs, l'image peut Dtre lue dans tous les sens !'information est code selon le s#st,me Yeed%Kolomon et stoc+e dans la partie jaune =ertains t#pes de codes restent lisibles avec /0[ de dgradation @ans la partie c#an se trouvent des informations sur le format
=e QY%=ode dessin dans le sable est tout & fait valide Essa#e> de le scanner c
@idier 7Aller
/%1;
aoBt 201/
Codage de l'information
5o rce"
N1O @umas, Yoc(, 9annier, 4arrette, 3horie des codes 4 Compression5 cryptage5 correction, @unod, 200. N2O 7artin ) , Codage5 cryptologie et applications, :resses :ol#tec(niques et -niversitaires Yomandes (::-Y), 2001 N/O =omment La marc(e, " Yeprsentation des nombres entiers et rels $, d(ttp5??^^^ commentcamarc(e net?contents?base?representation p(p/e N1O bi+ipdia, " 'nternational )oo+ Ktandard <umber $, d(ttp5??fr ^i+ipedia org?^i+i?'K)<e N;O @uvallet =laude, " !es codes correcteurs et les codes dtecteurs d'erreurs $, d(ttp5??litis univ%le(avre fr?fduvallet?enseignements?=ours?!:Y2@C2'?-H3?!:Y2@C2'%9@2%-H3 pdfe N.O bi+ipdia, " =odage de Juffman $, d(ttp5??fr ^i+ipedia org?^i+i?=odagegdegJuffmane
@idier 7Aller
/%1.
aoBt 201/