Cours PLURITAL 2007-2008

Cours n° 1 (2 octobre 2007)

Jean-François Perrot

Des octets au code ASCII


  1. Idée générale
  2. Organisation de cette page


Idée générale

Ce premier cours est consacré à la "substance" qui est contenue dans les fichiers logés sur un ordinateur,
et échangés à travers le réseau. Cette substance a un nom, c'est de l'information.
Son unité de base est le bit, mais on emploie couramment une unité plus grosse qui est l'octet (8 bits).
Le contenu d'un fichier, sa "substance", est donc constitué d'une séquence d'octets.
Peut-on voir ce contenu, le toucher, le manipuler ?
Jamais d'une manière directe, il faut nécessairement faire appel à un outil, qui opère une interprétation.
Or, il y a toujours plusieurs interprétations possibles : il appartient à l'observateur de choisir celle qui l'intéresse,
c'est-à-dire choisir son outil d'observation, et s'assurer qu'il est convenablement réglé.
Ce qui n'est pas toujours facile !

Du point de vue pratique, le choix de l'outil correspond  à celui du logiciel avec lequel on "ouvre" le fichier.
Les usagers de Linux ont l'habitude de se voir demander "ouvrir avec ?", ceux de Windows et de MacOS
au contraire sont habitués à ce que leur système d'exploitation associe au fichier un logiciel chargé de l'ouvrir.
Ils ont donc l'illusion d'une interprétation canonique attachée au fichier, alors qu'il ne s'agit que
d'une commodité, visant l'usage le plus fréquent, et qui peut être révoquée ad nutum
en modifiant les propriétés du fichier, qui sont gérées par le système (sous MacOS, on les appelle informations),
sans aucunement modifier son contenu.
Le choix de ce logiciel privilégié par le système est lié au nom que porte le fichier, et plus spécialement à son extension
(".txt", ".doc", ".html", etc). Changez l'extension et vous verrez le comportement du système changer !

Le but de ce premier cours est de "faire toucher du doigt" cette multiplicité d'interprétations,
en l'illustrant avec quelques outils.

Nous examinerons ici deux interprétations très différentes :
  1. Les octets vus comme des caractères, et le fichier tout entier lu comme un texte.
    Cette interprétation est le point de départ de cette série de cours.
    Ce point de départ est matérialisé par le code ASCII, dont on va montrer l'importance théorique et pratique.
    La suite du cours peut être envisagée comme des variations autour du code ASCII.

  2. Les bits vus comme des chiffres (en base 2) et le fichier comme la représentation d'un nombre.
    En elle-même, cette interprétation ne nous concernera pas dans la suite de ce cours.
    Mais comme elle est omniprésente dans la pratique, on essaiera ici de tirer les choses au clair
    une fois pour toutes.

Le matériel présenté dans cette page s'organise en 4 sections.

  1. Sur la nature de l'information, les bits et les octets, voir le texte détaillé Bits, octets, caractères.
    Ce texte tente d'élucider les notions d'information, de quantité d'information,
    et leurs rapports avec la représentation des nombres en base 2 et en base 16 (hexadécimale).
    Il aboutit à la présentation du code ASCII, qu'il est indispensable de bien connaître.
    Comme première application de ce discours, on a détaché une note sur la représentation du saut de ligne
    à laquelle vous aurez probablement à vous reporter dans l'avenir.

  2. En marge de ce développement, on propose un point de vue sur la représentation des nombres (entiers).
    Vous y trouverez de quoi représenter des entiers (pas trop grands, donnés en notation décimale)
    dans la base de votre choix (au plus 36), et réciproquement.
    Il est important de bien saisir la différence de nature entre information et nombre :
    (re)voyez le paragraphe Interprétation numérique.
    De manière à bien vous persuader que vos fichiers sont effectivement justiciables de ces considérations,
    je vous propose d'essayer un outil artisanal qui affiche (pour un petit fichier) son contenu en binaire
    (reconstitué par calcul !), en octal et en hexadécimal (trois représentations équivalentes de la même information),
    ainsi que le nombre entier correspondant (en notation décimale).

  3. Il faut absolument se familiariser avec les outils "professionnels" propres à révéler l'anatomie d'un fichier,
    et permettant même d'y pratiquer des interventions chirurgicales :  les éditeurs hexadécimaux.

  4. Les fichiers de caractères (alias "en texte pur") seront désormais l'objet de notre étude.
    Mais il faut bien se persuader que la plupart du temps leur rôle est celui d'une base pour des interprétations ultérieures.
    Vous trouverez ci-joint une esquisse présentant sommairement deux exemples de ces situations,

Bonne lecture ! Tous vos commentaires sont les bienvenus.