Outils pour utilisateurs

Outils du site


sysadmin:gestion-docs:codage

Le codage

Les ordinateurs sont composés de circuits électroniques qui connaissent deux états que l'on pourrait grossièrement décrire comme :

  • l'électricité passe
  • l'électricité ne passe pas

On peut coder ces deux états par 1 et 0. Cela permet de compter en base 2 comme nous le faisons tous les jours en base 10 (ou 60 pour les minutes, 24 pour les heures, etc.).

Un octet (byte) est un groupe de 8 bits. Sur 8 positions et avec 2 possibilités (0 et 1), on peut rencontrer 28 i. e. 256 possibilités.

Si cela vous paraît magique, rappelez-vous le code Morse avec lequel les télégraphistes communiquaient avec deux signaux _ et ..

Nombres, notations et bases

Que dire de 120 minutes ? Que ça dure 2 heures.
Que dire de 50 heures ? Que ça dure 2 jours et 2 heures.
Que dire de 45 minutes ? Que ça dure 3/4 d'heure.
Que valent 200 FF ? environ 30 €. 1 000 FF ? environ 150 €.

Dans les 3 cas, on a utilisé une base de calcul autre que 10. On vit dans le système décimal depuis la Révolution mais on sait encore changer de base. Pour les secondes et les minutes, la base 60 est utilisée. Pour compter en euro avec les mêmes ordres de grandeur qu'en francs, il suffit de compter en base 15 et non 100.

On utilise la numération décimale de position : écrire 121 signifie 1 * 100 + 2 * 10 + 1 i. e. 1 * 102 + 2 * 101 + 1 * 10 0.

Le même nombre (entité abstraite) se représente différemment suivant la base dans laquelle il est exprimé :

  • cent s'écrit 10010 car 1 * 102 + 0 * 101 + 0 * 100
  • cent s'écrit 11001002 en binaire car 1 * 26 + 1 * 25 + 0 * 24 + 0 * 23 + 1 * 22 + 0 * 21 + 0 * 20 = 64 + 32 + 4
  • cent s'écrit aussi 6416 en hexadécimal car 6 * 161 + 4 * 160 = 96 + 4
  • cent s'écrit encore 1448 en octal car 1 * 82 + 4 * 81 + 4 * 80 = 64 + 32 + 4

Pour l'hexadécimal, il faut des chiffres adaptés : on utilise les chiffres de 0 à 9 et on complète avec A = 10, B = 11, C = 12, D = 13, E = 14 et F = 15. Soit 23010 : il s'écrit E6 car E correspond au chiffre 14 et 14 * 161 + 6 * 160 = 224 + 6. De même, 1144510 s'écrit 2CB516.

Codage des caractères

On utilise des nombres pour représenter les caractères.

Le clavier envoie un signal lors de la frappe d'une touche. Ce signal est interprété différemment suivant la configuration du clavier (AZERTY vs QWERTY vs DVORAK…) sur le système.

Une page de code (table de correspondance) est alors utilisée pour faire correspondre un point de code (un nombre de la table) au caractère. Le character set est la table listant les caractères. Ces caractères sont représentés par des glyphes (qui changent suivant la fonte utilisée).

ASCII

Les anglo-saxons peuvent n'utiliser que 128 (27) caractères. On représente les 26 lettres de l'alphabet en majuscules et minuscules mais aussi les chiffres, la ponctuation et certain nombre de caractères non-imprimables (fin de ligne, espace, etc., cf. Caractères de contrôle utiles).

Le codage ASCII est la norme de base. Il ne permet pas de représenter les signes diacritiques (accents, trémas, cédilles, tildes, …) des langues européennes, encore moins les alphabets autre que latins : cyrillique, arabe, hébreu, dévanagari, etc.

ISO-8859-X

En se basant sur les positions 0 à 127, on étend la table à 256 caractères pour établir plusieurs normes permettant d'encoder du texte dans les langues utilisant les caractères manquants en ASCII. Les positions au delà de 128 varient d'une norme à l'autre mais les premières positions, elles, sont fixes.

Typiquement :

  • ISO-8859-1 (latin 1) représente les langues d'Europe occidentale,
  • ISO-8859-15 (latin 9) représente la même chose avec le symbole €,
  • ISO-8859-2 (latin 2) représente les caractères des langues d'Europe centrale,
  • ISO-8859-16 représente la même chose avec le symbole €,
  • etc.

Unicode

Avec le codage précédent, on ne peut disposer dans un même texte de caractères cunéiformes et latins. Unicode est une norme permettant de coder les quelques 50000 caractères (à l'heure de la rédaction de ces lignes) de toutes les langues (écrites, vivantes et mortes) connues.

UTF-8

UTF-8 est une méthode de stockage des caractères Unicode. Il utilise un à quatre octets (codage variable) suivant le caractère ; les 128 premières position correspondent à l'ASCII.

Les autres codages

Les constructeurs ont aussi mis au points leurs propres jeux de caractères, par exemple Win-1252 (Microsoft) et MacRoman (Apple) pour les langues occidentales.

Repérer les erreurs

Le caractère � indique un caractère non-UTF dans un texte UTF.

De même, les suites de deux caractères accentués indiquent un texte UTF-8 affiché dans un encodage fixe (ISO-8859, MacRoman, Win-1252…).

Références

Codage des couleurs

Les couleurs sont souvent codées en utilisant la norme RGB. Il s'agit de représenter la quantité de rouge (R), de vert (G) et de bleu (B). Cette quantité s'exprime souvent en hexadécimal (comme par exemple en HTML ou CSS).

sysadmin/gestion-docs/codage.txt · Dernière modification: 2011/10/08 11:20 par Pascal Cabaud