Des bits aux octets...
...et un peu d'hexadécimal


Carte perforée selon le codage EBCDIC
Avec un seul bit, on peut représenter uniquement deux valeurs, 0 et 1.

Comme on l'a vu, on peut représenter tous les nombres avec le système binaire, ni plus ni moins qu'avec le système décimal ou tout autre système.

Seulement, ces bits vont être inscrits d'une façon ou d'une autre sur des supports matériels, cartes, puces électroniques... D'une part, ces supports vont avoir une limite physique et, d'autre part, on ne va pas toujours avoir besoin de représenter des valeurs astronomiques.

Les cartes perforées sont les premiers systèmes de mémoire de masse utilisés pour la mécanographie sur lesquels on peut écrire et lire des données. En général, chaque unité d'information (une lettre, un chiffre,...) est représentée sur ces cartes par la présence ou l'absence de perforations dans une même colonne.

Par exemple, un A sera représenté par des perforations sur la première et sur quatrième ligne sur les cartes IBM 80 colonnes. Bien qu'à la base le principe soit binaire (pour chaque case, il y a une perforation ou il n'y en a pas), les liens avec les valeurs binaires ne sont pas évidents. Les choix dus aux contraintes techniques et à l'obligation de respecter les brevets des uns et des autres impliquent des représentations plus arbitraires que logiques et donc souvent peu explicites.

Code Baudot
Le premier à utiliser le système binaire pour la représentation des données est Émile Baudot, un ingénieur en télégraphie qui a travaillé à améliorer les transmissions télégraphiques dans les années 1870. Pour cela, il a créé une façon de coder les signaux qui sera utilisée par la suite dans les téléscripteurs et que l'on a appelée le code Baudot.

Ce code comprenait un jeu de 31 caractères plus un code indiquant un changement de jeu de caractères. Le premier jeu de caractères comprenait les 26 lettres de l'alphabet et quelques caractères spéciaux, le second jeu, les chiffres de 0 à 9 et le reste des caractères spéciaux.

À chaque caractère, correspondait une valeur binaire explicite selon une logique particulière que l'on a appelé plus tard "code de gray" (00001, 00011, 00010, 00110... comme on peut le voir sur l'illustration) ainsi qu'un ordre des symboles qui devait, aux yeux d'Émile Baudot convenir à la télégraphie.

 1   2   3   4   5   ...   31 
 00001   00010   00011   00100   00101   ...   11111 
A E É Y U ... P

Évidemment, avec 5 bits, on ne peut représenter que 32 éléments par "jeu de caractères". Si cela peut suffire pour coder 26 lettres majuscules et quelques signes, cela se révèle vite insuffisant si l'on veut ajouter les minuscules, toutes les lettres accentuées dans plusieurs langues et des instructions pour les machines.

Tableau de codes ASCII US
IBM a utilisé par la suite pour ses cartes perforées l'EBCDIC, un codage sur 7 bits. Dans les années 60, on a également utilisé l'ASCII (American Standard Code for Information Interchange), un standard sur 7 bits, pour représenter les caractères et, comme on peut le voir sur le tableau, diverses commandes comme le retour à la ligne (Code CR - Carriage return - colonne 0 ligne 13).

Mais, comme en électronique il est judicieux d'utiliser des puissances de 2 (4, 8, 16, 32, 64...) l'informatique a très vite adopté une représentation basée sur des séries de 8 bits que l'on a appelées "Octets".

Un octet va ainsi pouvoir représenter 256 valeurs. C'est suffisant pour représenter, selon le contexte, des petites valeurs, pas mal de symboles et de caractères, une palette de couleur un peu étendue ou encore des commandes à faire exécuter par le microprocesseur.

Bien sûr, on ira beaucoup plus loin en regroupant plusieurs octets pour représenter des valeurs plus grandes ou plus nombreuses, mais on continuera à dénombrer les capacités des mémoires et des disques ainsi qu'à représenter certaines autres valeurs sur la base de ces fameux octets.

 0   1   2   3   ...   255 
 0000 0000   0000 0001   0000 0010   0000 0011   ...   1111 1111 

Reste à créer un système pour pouvoir retenir, écrire et lire plus facilement des séries d'octets. Déjà, en les séparant par groupes de 4 comme ci-dessus, on y voit plus clair. 1010 1101 1000 c'est plus lisible que 101011011000. Et comme sur 4 bits on peut représenter les valeurs de 0 à 15 qui se trouvent correspondre aux "chiffres" de 0 à F de la numérotation hexadécimale, il ne reste plus qu'à transcrire comme ci-dessous pour quelques valeurs prises au hasard :

 0   15   56   90   ...   255 
 0000 0000   0000 1111   0011 1000   0101 1010   ...   1111 1111 
 00   0F   38   5A   ...   FF 

On obtient quelque chose de plus facilement lisible. Par exemple la suite F0 15 1A 2B est plus facile à manipuler pour des humains que la suite 0111 1000 0000 1010 1000 1101 0001 01011 ou que la valeur décimale correspondante, 4027914795...

Revenons à nos octets. Un octet, ce n'est pas beaucoup. Dans nos mémoires, ils vont heureusement se compter par millions. Là encore, l'informatique va apporter une petite subtilité.

Au lieu de compter par 1000 comme on le fait pour les grammes des kilos de pomme de terre, on va parfois compter par une certaine puissance de 2 puisque la construction des composants électroniques privilégie ces puissances de 2. Or, il se trouve que 2 puissance 10 vaut 1024. Ceci peut entraîner une certaine confusion, un kilo-octet selon les cas représentant 1000 octets ou 1024 octets. Officiellement, il est recommandé d'utiliser le préfixe Kilo pour 1000 et le préfixe Kibi pour 1024. Mais ce distinguo n'est pas toujours respecté. Un petit tableau pour ne pas s'y perdre :
Et vous pouvez continuer avec les pétaoctets (vs pébioctets), exaoctets (vs exbioctets), zettaoctets (vs zébioctets), yottaoctets (vs yobioctets), soit 1 million de milliards de milliards d'octets.

Encore une petite subtilité avant de passer à la suite. En français, on fera facilement la distinction entre Kilo-Bits (Kb) et Kilo-Octets (Ko). En anglais, ce sera plus subtil. Le terme byte est parfois utilisé pour désigner un octet : Kilo-Bytes sera abrégé en KB et Kilo-bits en Kb. Vous voilà prévenus si vous tombez sur des documents rédigés en anglais.

Sommaire - En savoir plus