Disques durs d'ordinateur, supports amovibles (CD, DVD, clés USB,...) et smartphones ont un point commun : le codage binaire, un passage obligé pour enregistrer et traiter des données informatiques.
Retour aux bases !
La base de l'informatique : coder une information en la disséquant
Pour enregistrer un texte, un son ou une image (et pouvoir les manipuler ensuite), un outil informatique a obligatoirement besoin de les coder, de les transformer pour les "comprendre".
Ce codage consiste surtout à décomposer leur contenu en informations individuelles : chaque lettre ou chiffre d'un document, chaque pixel d'une image, chaque seconde de son,... est décrit séparément, et dans un vocabulaire bien particulier, pour pouvoir être enregistré puis manipulé.
Mais pour passer d'un objet "humain" à sa "traduction pour ordinateur", il faut plusieurs étapes car un ordinateur est très loin de "réfléchir" comme nous autres bipèdes !
Qu'est un mot ou une image pour un ordinateur ?
Pour un ordinateur, un mot comme "bonjour" sera la suite d'instruction "écrireb puis o puis n puis j puis o puis u puis r".
Que ce soit poli, du français, ou qu'il "voit passer" ce mot en pleine nuit, ne lui fait ni chaud ni froid : c'est une suite de lettres. Point.
Il verra par contre une différence avec le morceau de phrase "Archi7 !" car un ordinateur est très pointilleux : en plus des lettres en minuscule, il y a une lettre en majuscule et en gras (le A), un chiffre (7), un espace et une ponctuation (!).
Pour lui, ce sera donc : "écrire : a majuscule en gras puis r minuscule normal puis c minuscule souligné puis h minuscule normal puis i minuscule normal puis chiffre 7 puis espace puis point d'exclamation".
Là encore, l'ordinateur ne veut pas savoir ce que vous voulez dire avec ces "bizarreries".
Tout ce qu'il constate, c'est qu'il faut plus d'informations pour chaque caractère pour pouvoir les écrire précisément.
Pour les images, c'est le même principe de décomposition en morceaux, sauf qu'il ne décompose en lettres, chiffres et espaces mais en pixels.
Pour décrire cette image, vous, vous diriez :
"C'est le dessin d'un bonhomme moustachu, avec un chapeau bleu ciel.".
Même sans voir l'image, un autre être humain pourrait s'imaginer ce que vous voyez...
Un ordinateur, lui, n'est pas sensible a ce que représente l'image (et n'a absolument aucune imagination !).
Pour lui, c'est une suite de lignes faites de pixels.
Sa description de l'image est donc une suite d'informations sur chaque pixel :
blanc | blanc | blanc | bleu | bleu | bleu | bleu | blanc | blanc | blanc |
blanc | blanc | blanc | bleu | bleu | bleu | bleu | blanc | blanc | blanc |
blanc | blanc | bleu | bleu | bleu | bleu | bleu | bleu | blanc | blanc |
blanc | blanc | blanc | marron | marron | beige | beige | beige | blanc | blanc |
etc... |
C'est même plutôt, une suite d'instruction comme :
image | blanc | blanc | blanc | bleu | bleu | bleu | bleu | blanc | blanc | blanc | aller à la ligne |
blanc | blanc | blanc | bleu | ...etc... | fin de l'image |
Transformer l'information en "langage d'ordinateur"...
Pour "faire comprendre" une information à un ordinateur, il faut même aller encore plus loin :
pour lui,
- "m" est le caractère "m"
- "chiffre 7" est le caractère "7"
- "blanc" est une couleur qui se nomme "#FFFFFF"
(dont il faut ensuite "traduire" encore chaque caractère comme pour le m ou le chiffre 7....) - le "bleu" qui est dessiné là est une couleur qui se nomme "#3fb2f8" (qu'il faudra aussi ensuite décomposer...)
- ...
Bref, il faut TOUT "traduire" pour le transformer en une série de caractère et nombres...
Mais ça ne suffit toujours pas à faire rentrer une info dans la caboche métallique d'un ordinateur !
Il faut encore pousser plus loin la traduction, avec une contrainte : un support d'enregistrement informatique ou un ordinateur ne comprend que deux informations différentes : 0 et 1 !
(celà est du à ce qu'est physiquement un objet informatique réel, archi7 prépare une page là-dessus...).
Ce code qui permet de faire comprendre a, b, c,..., z, A, B, C,..., Z, 0, 1, 2, 3,... 9, #, %,... et tous les autres caractères qui donnent des informations à un ordinateur est le code binaire : binaire veut dire deux, le nombre de choix possible quand on se limite à "0" ou "1"...
... jusqu'au code binaire : 0 et 1 !
En écrivant un "m" dans un logiciel de traitement de texte, vous ne voyez pas que l'ordinateur commence par comprendre "m" puis qu'il traduit ça par des séries de 0 et de 1 comme "01101101".
En informatique, chacun de ces 0 ou 1 est appelé un bit (abréviation anglaise de Binary digit).
Chaque information simple comme une lettre ou un chiffre est ainsi traduite par une série de huit 0 et 1.
On a donc pris l'habitude de compter par "paquet de huit", en appelant chacun de ces paquets "Octet" (ou Byte en anglais).
Pour se donner un repère, la même place de 4 Mo représente
un texte de 4 millions de caractères (environ 800 fois le texte de cet article, sans sa mise en forme),
ou 27 secondes de musique en stéréo
ou une seule image de très bonne qualité (voire plusieurs si elles sont comprimées, mais c'est une autre histoire...).
La folie des grandeurs
L'octet "valait cher" au début de l'informatique : les supports d'enregistrement ne pouvaient stocker que peu de bits... et les ordinateurs étaient très lents pour manipuler chaque octet.
On n'enregistrait d'abord que des textes sans fioritures, et en comptant chaque caractère !
Longtemps, par exemple, les titres de fichiers ont été limités à 8 caractères (sans choix entre majuscules et minuscules)... puis on a compté en milliers d'octets, en millions et vous êtes maintenant familiers des milliards d'octets.
La preuve :
1 000 (103) octets | valent | 1 kilo-octet (ko) |
1 million (106) d'octets | 1 Méga-octet (Mo) | |
1 milliard (109) d'octets | 1 Giga-octet (Go) | |
1 000 millards (1012) d'octets | 1 Téra-octet (To) |
Les mêmes préfixes sont applicables aux bits, sachant que 1 octet = 8 bits :
1 méga-octet (Mo) = un million d'octets = 8 millions de bits = 8 méga-bits (Mb)
1 mega-byte (MB) = un million de bytes = 8 millions de bits = 8 mega-bits (Mb)