1 / 27

Codage de l’information

Codage de l’information. Laurent JEANPIERRE <jeanpl@iutc3.unicaen.fr> D’après le cours de Pascal FOUGERAY IUT de CAEN – Campus 3. Contenu du cours. Définition Les entiers Les caractères Les codes détecteurs d’erreurs Les nombres à virgule flottante. Définition.

sutton
Télécharger la présentation

Codage de l’information

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Codage de l’information Laurent JEANPIERRE <jeanpl@iutc3.unicaen.fr> D’après le cours de Pascal FOUGERAY IUT de CAEN – Campus 3 Département Informatique

  2. Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique

  3. Définition • Code : Système conventionnel de signes ou de signaux, de règles et de lois, permettant la transformation d'un message en vue d'une utilisation particulière. • Exemples : • Code de la route, • Code génétique, • Code postal, • Code secret, • . . . Département Informatique

  4. Définitions (suite) • Codage : le fait de coder • Coder : écrire dans un code • Transcodage : opération consistant à transcrire un code dans un autre • Exemples : • nombres arabes  nombres romains • ASCII  Unicode Département Informatique

  5. Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique

  6. Le code de Gray • Ou encore « code binaire réfléchi » • Utilisation : • Visualisation d’informations dynamiques • Conversion de grandeurs analogiques • … • Avantage : • Élimine les erreurs de transitions Département Informatique

  7. Code de Gray : exemple Département Informatique

  8. Le code BCD • Binary Coded Decimal, ou décimal codé en binaire : 1 chiffre décimal  4 bits. • Exemple : • 198510 = 0001 1001 1000 0101BCD • Avantages : • Simplicité du binaire • Lisibilité du décimal (pour l’homme !) • Inconvénient : • Les calculs nécessitent des corrections Département Informatique

  9. Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique

  10. Les caractères • Ordinateur  0/1 • Caractères  code numérique • Sous Linux : • recode -l : affiche les codes disponibles • Exemple : ‘A’ • ASCII : 65 (8 bits) • EBCDIC : 193 (8 bits) • Unicode : 65 (16 bits) Département Informatique

  11. EBCDIC • Extended Binary Coded Decimal Interchange • Code sur 8 bits, parfois 9 (avec parité) • Utilisé par IBM principalement. Département Informatique

  12. ASCII • American Standard Code for Information Interchange • Code 7 bits, pas d’accents • Plusieurs « pages de codes » sur le reste Département Informatique

  13. Nouveaux codes • Pages de codes ingérables, trop nombreuses (190 + codes multi octets) • http://alis.isoc.org/codage/registre_ISO.htm • Années 90  UNIversal CODE : UNICODE (16 bits) • http://www.unicode.org • ISO/IEC 10646 : 32 bits • http://alis.isoc.org/codage/iso10646/ Département Informatique

  14. Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique

  15. Pourquoi contrôler les erreurs ? • Un ordinateur ne cesse de transférer des données : vers la mémoire, le disque, un périphérique, un autre ordinateur. • Chaque transfert peut altérer les données. Spécialement en analogique. • Il faut donc être capable de détecter ces erreurs, voire de les corriger… Département Informatique

  16. Contrôle de parité • Soit un code sur n bits • On ajoute 1 bit tel que tous les mots du code aient un nombre de bits à 1 : • Pair : code à parité paire. • Impair : code à parité impaire. • On ne peut donc détecter que les erreurs sur un nombre impair de bits. Département Informatique

  17. Codes de blocs • Développés par R.W. Hamming • Principe général : • Séparation en blocs de taille fixe • Ajout de bits de redondance à chaque bloc • Transmission… • Vérification des blocs reçus: • Le bloc est un mot du code : Pas d’erreur, on peut extraire le message original • Le bloc n’est PAS un mot du code : Il y a eu erreur. Département Informatique

  18. Codes de blocs (2) • Quand erreur : • On peut retrouver le mot original(code auto-correcteur d’erreur) • On doit demander la retransmission(code vérificateur d’erreur) • Distance de Hamming : • Nombre minimal de bits séparant deux mots du code (Code de Gray : 1) • Plus elle est grande, plus le code est bon Département Informatique

  19. Codes de blocs (3) • Exemple : • Contrôle de parité verticale (VRC) • Contrôle de parité horizontale (LRC) • Contrôle de parité croisée 0 50h 0 41h 0 47h 56h 0 0 1 1 0 1 1 0 Département Informatique

  20. Codes de redondance cyclique • Ou Cyclic Redundancy Check • Ou codes polynomiaux • Un mot de n bits  polynôme de degré n • Exemple : • 101112  1*X4+0*X3+1*X2+1*X1+1*X0 • Principe du codage : • Soit le mot I(X) à envoyer et G(X) un polynôme générateur • Envoi de M(X) = I(X)+R(X) tel que G(X) divise M(X) • A la réception, on vérifie que G(X) divise bien M(X) Département Informatique

  21. CRC (2) • Il faut donc bien choisir G(X). • Exemple : (CRC16 du CCIT) • X16 + X12 + X5 + 1  10001000000100001 • Permet de détecter : • 100% des erreurs de 1 ou 2 bits • 100% des erreurs impaires • 100% des paquets de 16 erreurs ou moins • 99.99% des paquets de 18 erreurs Département Informatique

  22. Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique

  23. Extension des entiers • On a vu que • 10112 = 1*23 + 0*22 +1*21 +1*20 = 1110 • Par extension : • 1011,012 • = 1*23 +0*22 +1*21 +1*20 +0*2-1 +1*2-2 • = 1*8 +0*4 +1*2 +1*1 +0/2 +1/4 • = 11,2510 Département Informatique

  24. Normalisation • Comment stocker ce nombre ? • Virgule fixe : n,m bits • Simple et efficace • Expressivité très limitée (-2n2n) • Virgule flottante : • 1011,012 = 1011012*2-2 = 0,1011012*24 •  stockage de 101101 (n bits) et de 100 (m bits) • Grande expressivité (-22m-1  22m-1-1) • Grande précision 2-n+1 Département Informatique

  25. Stockage • Tout nombre peut donc être stocké par • N = (-1)S * M * 2e • Notation en virgule flottante normalisée • Avec • Son signe S • Sa mantisse M (bits significatifs) • Son exposant e • 0 est codé de façon spéciale (pas de bits significatifs) Département Informatique

  26. Dans les faits • N = (-1)S * M * 2e+k • 1 > M ≥ (0,1)2 = (0,5)10(premier bit de M = 1) • e non signé (pas de complément à 2) • 0 = (-1)S * 0 * 20+k • D’autres nombres : ±∞, NAN Département Informatique

  27. Les normes • IBM (32 bits) • IEEE754 sur 32 / 64 / 80 bits • Sur 80387 (80 bits) : 3,4*10-49321,2*104932 Département Informatique

More Related