580 likes | 1.61k Views
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.
E N D
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
Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique
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
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
Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique
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
Code de Gray : exemple Département Informatique
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
Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique
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
EBCDIC • Extended Binary Coded Decimal Interchange • Code sur 8 bits, parfois 9 (avec parité) • Utilisé par IBM principalement. Département Informatique
ASCII • American Standard Code for Information Interchange • Code 7 bits, pas d’accents • Plusieurs « pages de codes » sur le reste Département Informatique
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
Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique
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
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
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
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
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
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
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
Contenu du cours • Définition • Les entiers • Les caractères • Les codes détecteurs d’erreurs • Les nombres à virgule flottante Département Informatique
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
Normalisation • Comment stocker ce nombre ? • Virgule fixe : n,m bits • Simple et efficace • Expressivité très limitée (-2n2n) • 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
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
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
Les normes • IBM (32 bits) • IEEE754 sur 32 / 64 / 80 bits • Sur 80387 (80 bits) : 3,4*10-49321,2*104932 Département Informatique