L'information binaire
Plutôt qu'un long discours, un rapide comparatif entre l'Hominidé moyen et la puce informatique de base sur leurs manières respectives de décrire le Monde:
| vu de l'humain... | vu de la puce... |
| Vrai / Faux | 00000001 / 00000000 |
| Le nombre entier 82 | 01010010 |
| La lettre R majuscule | 01010010 |
| La couleur jaune | 1111111 11111111 100000000 |
| Le nombre décimal 3,14151 | 01000000 01001001 00001110 10000000 |
| Le mot "pomme" | 01110000 01101111 01101101 01101101 01100101 |
| L'instant précis où ces mots ont été saisis sur le clavier | 00000000 00000000 00000001 00010101 10111100 10100101 01111010 01110110 |
| Ce chef-d'oeuvre d'art contemporain: |
10001001 01010000 01001110 01000111 00001101 00001010 00011010 00001010 00000000 00000000 00000000 00001101 01001001 01001000... (etc sur 1.592 caractères) |
| Ce court extrait du dernier concert de M. Polnareff | 01010010 01001001 01000110 01000110 01110111 00011101 00000000 00000000 01010111 01000001 01010110 01000101 01100110 01101101... (etc sur 60.392 caractères) |
| La dernière photo du fiston | 11111111 11011000 11111111 11100011 10011001 11001100 10001010 11110000 11010010 11001100 00000000 00000000 10011010 10011010... (etc sur 20.503.928 caractères) |
| L'amour, Proust, une endive, la natation synchronisée, Liszt, |
TILT ! |
Bref, une page qui s'annonce sensuelle et bigarrée...
Une chaîne d'information continue
Présentation de l'information binaire
Une information incroyablement variée...
Une Granny Smith (ici, une espèce indigène de la Silicon Valley)Reconnaissons-le: l'ordinateur, en ce début de troisième millénaire, est une machine plutôt prometteuse capable de manipuler un tas d'informations a prioriA priori seulement, car nous verrons bientôt que derrière toutes ces formes d'information ne se cachent en réalité que de bons vieux chiffres. très différentes: nombres, texte, sons, images....
Des informations très différentes, certes, mais en tout cas dénuées de toute valeur sémantique. Ainsi, si un ordinateur sait parfaitement lire, écrire ou mémoriser le mot "pomme", il demeure néanmoins incapable d'en appréhender ni le sens, ni la substance...et on ne vous parle pas du goût ! - et ne fera donc aucun lien spontané entre ledit mot et un cliché, même numérique, de Granny Smith.
Quoi qu'il en soit, ces informations, quelle que soit leur nature, se "matérialisent" sur nos ordinateurs par des fichiers, de tailles très variables et aux noms plus ou moins explicites, comme l'illustre la copie d'écran ci-dessous.
Si votre ordinateur est convenablement configuré et dispose des logiciels adéquats, un simple double-clic sur chacun de ces fichiers lance automatiquement le logiciel permettant de l'exploiter.
Ainsi, par exemple, un double-clic sur le premier fichier ouvrira celui-ci dans le logiciel Adobe Acrobate Reader©, un double-clic sur le fichier photo provoquera l'affichage de celle-ci dans votre logiciel de visualisation préféré et un double-clic sur le fichier mp3 lancera automatiquement la lecture de la chanson via votre lecteur multimedia.
Ah, si tout pouvait se piloter à la souris...
Cette impressionnante clairvoyance de la machine est en fait basée sur un mécanisme on ne peut plus trivial puisque le système d'exploitation se contente en réalité de lire l'extension du fichier cliqué (les quelques lettres situées après le "."), compulse alors une petite liste pense-bête qui associe à chaque extension un logiciel donné, puis lance celui-ci, s'il est installé sur la machine.
Bref, renommez manuellement votre fichier en lui attribuant une extension fantaisiste et votre belle machine perdra illico les pédales. Mieux, attribuez facétieusement l'extension doc à votre fichier mp3 et l'ordinateur lancera bêtement Microsoft Word© afin de visualiser ce qu'il croira être un fichier texte.
Comme vous le voyez, l'intelligence artificielle a encore une certaine marge de progression...
FAQ
Sûrement parce qu'il est configuré de manière à masquer celles-ci. Généralement, Windows remplace cette extension (finalement peu explicite) par une jolie petite icône illustrant le type de fichier, si celui-ci est référencé dans sa liste pense-bête.
Vous pouvez néanmoins forcer l'affichage de ces extensions sous ce bon vieux Windows XP via l'explorateur grâce au menu Outils > Options des dossiers, onglet [Affichage], puis décocher l'option "Masquer les extensions des fichiers dont le type est connu".
Mais tout-à-fait. Manquerait plus que ça ! Il vous suffit, depuis l'explorateur de Windows, d'activer le menu Outils > Options des dossiers et de sélectionner l'onglet [Types de fichiers]. Vous aurez alors accès à l'impressionnante liste des types de fichiers recensés sur votre machine, et pourrez modifier, supprimer ou créer les associations de votre choix.
...mais finalement pas tant que ça !
Bien. Nous savons désormais que notre système d'exploitation, faisant finalement ce pourquoi on l'a payé...ou pas., se permet d'intervenir lors de nos double-clics sur nos fichiers afin de "diriger" ceux-ci vers les logiciels appropriés. De ce fait, si nous voulons manuellement explorer le contenu de ces fichiers sans cette délicate interférence, nous devons utiliser un logiciel particulier appelé éditeur hexadécimalNous comprendrons plus tard ce drôle d'épithète., comme on en trouve des dizaines sur Internet.
Et voici ce que l'on découvre alors:
Et encore faut-il remercier le logiciel de nous épargner une vision plus désespérante ! En effet, comme son nom l'indique, l'éditeur nous propose le contenu des fichiers sous une forme hexadécimalePromis, on voit ça plus bas.. Sans cet effort de formatage, nous pourrions alors constater que tous nos fichiers informatiques, sans exception, sont en réalité constitués d'une très très très longue séquence uniquement composée de deux symboles: 0 et 1.
Mais après tout, l'internaute un tant soit peu philosophe ne sera guère étonné: l'extraordinaire diversité de notre univers ne repose-t-elle pas sur un tout petit trio de particules élémentairesBon, c'est vrai que protons, neutrons et électrons sont eux-mêmes composés de quarks, mais ne poussons pas, ce n'est pas un cours de physique des particules ici. ?
Caractéristiques de l'information binaire
Une information de bric et de broc
Nous n'avons vraiment pas les mêmes valeurs
Sans doute serait-il plus conforme à la réalité de nommer "vrai" et "faux" ces deux symboles élémentaires. Mais ce serait encore trop humaniser la machine qui ne partage avec nous autres, roseaux pensants, pas même l'algèbre la plus élémentaire.
...Ou plutôt, plus respectueusement: de 1 et de 0.
Mais, soit dit en passant, ne vous fiez pas à ces caractères qui ressemblent à s'y méprendre à nos deux premiers chiffres décimaux. Pour la machine, il n'en est rien, même si les apparences peuvent être trompeuses.
Ce qui est certain, c'est que vous pouvez considérer votre ordinateur comme un interlocuteur étrange qui parlerait une langue dont l'alphabet ne serait composé que de deux lettres: "0" et "1"Vous vous moquez, mais c'est à peine moins que le nombre de lettres constituant votre ADN.... Dès lors, toute information que vous voulez rendre compréhensible à un ordinateur doit auparavant subir un codage binaire (binary coding) afin de la transformer en une séquence uniquement composée de ces deux symboles.
Tel est, ici, le sens de l'épithète "binaire": qui ne comporte que deux états.
L'expression "information binaire" est celle qui sied le mieux à la logique interne de la puce informatique. Néanmoins, l'usage des chiffres "0" et "1" est si pratique, et si universellement adopté, que l'on qualifie volontiers cette phase de codage de l'information humaine en information binaire de numérisation (digitization) voire, pour les indécrottables franglais, de digitalisation.
D'où le terme, certes galvaudé mais largement passé dans les moeurs, d'information numérique (digital data) pour qualifier cette information, si humainement monotone, dont se repaît si avidement la machine.
Une information imparfaite
Le codage des informations par l'ordinateur en données binaires a pour la machine des avantages précieuxNous verrons ça aussi..., mais elle le confine simultanément dans un univers quasi incompatible avec notre monde "sensible".
En effet, la plupart des informations que nous, humains délicats et raffinés, échangeons avec notre environnement sont de type analogique (analogic). En d'autres termes, les stimuli auxquels nous sommes sensibles (sons, lumières...) sont pour la plupart issus de phénomènes naturels dont les variations sont parfaitement "fluides".
Ainsi, par exemple, la voix de votre interlocuteur est assimilable à une onde sonore continue qui varie au gré de ses intonations en une infinité de fréquences voisines. De la même manière, un arc-en-ciel, contrairement au mensonge éhonté que l'on apprend aux enfants, n'est pas constitué de sept couleurs mais d'un dégradé continu de nuances entre violet et rouge.
Analogique ou numérique, le réveil sonne toujours trop tôt
A moins de disposer d'un majordome personnel, vous avez sans nul doute déjà croisé un réveil à affichage dit "digital". Celui-ci, pépère, se contente d'afficher en gros chiffres rouges et carrés les heures et les minutes au fur et à mesure que le temps passe.
Un mathématicien, ce personnage sournois et mystérieux, qualifierait un tel mode d'affichage de "discret"...et ce même si les chiffres illuminaient la pièce comme en plein jour, comme c'est d'ailleurs toujours le cas avec ces satanés engins.. De fait, le scientifique, par ce terme, voudrait signifier que le chiffre des heures, comme celui des minutes, ne peuvent prendre ici qu'un nombre fini de valeurs: de 0 à 23 pour le premier, de 0 à 59 pour le second.
Rappelez-vous maintenant la montre de grand-papa: sur celle-ci, aucun affichage digital mais deux aiguilles de taille inégale passant, au gré des heures et des minutes, par tous les angles entre 0° et 360°. Sur cette montre, donc, l'heure indiquée ne change plus une fois par minute mais de manière continue, fluide, bref analogique, et finalement plus conforme à la réalité physique du temps qui passe.
Bon. Les esprits chagrins ramèneront sûrement leur fraise en arguant que le mouvement des aiguilles n'est vraisemblablement pas continu mais que celles-ci avancent plutôt par "pas" assez petits pour nous donner l'illusion d'une continuité de mouvement. Ceux là auront parfaitement raison, mais plutôt que de démolir la pertinence de cette métaphore, ils démontreront au contraire qu'une information numérique peut, si elle met en jeu un nombre suffisamment important de valeurs discrètes...c'est-à-dire, dans le cas de notre exemple temporel, un nombre important de "pas" d'aiguille., nous restituer une illusion plus ou moins parfaite de fluidité.
Démentiel ! En plus de savoir, plaisir et jouissance, cette page donne l'heure !
Comme vous le devinez sûrement, l'information numérique telle que l'ingurgite l'ordinateur s'accorde mal avec cette fluidité du réel. Tant qu'elle se borne à décrire une information discrète, c'est-à-dire dont toutes les valeurs possibles sont en nombre fini...comme par exemple les lettres d'un alphabet., l'information binaire fait parfaitement l'affaire. Mais dès lors que l'information à numériser est de nature analogique, comme c'est très généralement le cas, il faut alors se résoudre à "simplifier" plus ou moins fidèlement l'information originale en procédant à un echantillonnage (sampling) de cette dernière.
De ce point de vue très précis, l'information numérique s'avère, par nature, inexorablement imparfaite.
Parfaitement ! Mais plutôt que de les jeter, faites un geste pour la planète et adressez-les à l'auteur de cette page, qui saura les recycler (la pop anglaise surtout).
Bon... en fait, gardez tout. Lorsque nous disons que l'information numérique est une version "simplifiée" de l'information analogique, nous parlons de l'information analogique telle que nos sens la perçoivent "à la source", que ce soit nos oreilles (pour les sons), nos yeux (pour les images) ou notre raison (pour les nombres réels, par exemple). Or, les médias analogiques tels que nous les connaissons ne restituent pas cette information originelle, mais une reproduction de celle-ci, obtenue par des méthodes imparfaites qui superposent au signal original des parasites, du bruit ou des distorsions.
La numérisation, même si nous avons vu qu'elle dénaturait le signal original, peut néanmoins approcher une fidélité quasi irréprochable. Mais il faut pour cela d'immenses quantités de "1" et "0". Le fait est qu'aujourd'hui, les capacités de nos supports optiques (CD, DVD) ou magnétiques (disque dur, clef USB) et la puissance de nos processeurs permettent le stockage et le traitement de telles quantités. Voilà pourquoi les médias numériques surpassent désormais en qualité les enregistrements analogiques.
Une information en paquets
Autre caractéristique de l'information bianireL'information bianire, assez répandue, c'est un peu comme l'information binaire, sauf que le doigt chargé du "a" s'est montré anormalement plus vif que son collègue chargé du "n"., que les plus attentifs auront remarqué à la lecture de notre comparatif introductif: la taille "octuplée" des séquences codées.
De fait, cette remarque oculosaute dès la première ligne; en effet, on aurait légitimement pu s'attendre à ce qu'un seul symboleA vrai dire, ce serait même la seule situation où une information ne poserait pas trop de problème pour son codage binaire... ne suffise à discerner la notion "vraie" de la notion "fausse". Or, et ceci est par la suite confirmé sur toutes les autres lignes du tableau, nous pouvons remarquer que toute information, quelle qu'elle soit, se trouve toujours codée par une séquence composé d'un nombre de caractères multiple de huit.
L'observation pourrait être anecdotique, mais elle témoigne en fait du mode de fonctionnement très particulier du processeur qui manipule l'information binaire par "pelletées" de volume toujours identique.
Mais nous verrons tout cela un poil plus bas sur cette pageSi c'est pas du teasing, ça......
Une information équivoque...
Une dernière petite réflexion, que même les plus paresseux auront eu le temps de formuler en lisant l'introduction de cette page: les deuxième (codage du nombre 82) et troisième lignes (codage de la lettre R majuscule) de notre petit comparatif...décidément fort judicieux... révèlent qu'une même séquence binaire peut parfaitement coder des informations différentes.
Le fait est que pour numériser de l'information, le processeur se sert de multiples codes adaptés à la nature de l'information. Dès lors, il est tout à fait possible que deux codes différents, appliqués à deux informations différentes, conduisent à la même séquence binaire.
En d'autres termes, il est foncièrement impossible de dire que code une information binaire si on ignore la méthode de codage qui a été utilisée pour la produire.
Ceci compris, il serait maintenant plus complet de reprendre notre tableau introductif et de lui ajouter une colonne renseignant sur le type de codage conduisant aux différentes séquences binaires présentées.
| vu de l'humain... | vu de la puce... | Codage binaire utilisé |
| Vrai / Faux | 00000001 / 00000000 | Type "Booléen" en langage C |
| Le nombre entier 82 | 01010010 | Numération binaire positionnelle |
| La lettre R majuscule | 01010010 | Codage ASCII |
| La couleur jaune | 1111111 11111111 100000000 | Codage RVB |
| Le nombre décimal 3,14151 | 01000000 01001001 00001110 10000000 | Codage IEEE-754 simple précision |
| Le mot "pomme" | 01110000 01101111 01101101 01101101 01100101 | Codage ASCII |
| L'instant précis où ces mots ont été saisis sur le clavier | 00000000 00000000 00000001 00010101 10111100 10100101 01111010 01110110 | Temps UNIX...mesure le nombre de millisecondes écoulées depuis le 1er janvier 1970 à 0h00. |
| Ce chef-d'oeuvre d'art contemporain: |
10001001 01010000 01001110 01000111 00001101 00001010 00011010 00001010 00000000 00000000 00000000 00001101 01001001 01001000... (etc sur 1.592 caractères) | Format graphique PNG |
| Ce court extrait du dernier concert de M. Polnareff | 01010010 01001001 01000110 01000110 01110111 00011101 00000000 00000000 01010111 01000001 01010110 01000101 01100110 01101101... (etc sur 60.392 caractères) | Format audio WAV |
| La dernière photo du fiston | 11111111 11011000 11111111 11100011 10011001 11001100 10001010 11110000 11010010 11001100 00000000 00000000 10011010 10011010... (etc sur 20.503.928 caractères) | Format graphique JPEG |
Mais alors ? Pourquoi le binaire ?
Claude SHANNON, futur papa de la théorie de l'information.A bien lire ce premier chapitre, on pourrait franchement douter de la pertinence et de la fiabilité de l'information binaire pour restituer correctement l'information humaine. Mais alors, pourquoi avoir conçu l'ordinateur de telle manière qu'il ne comprenne que cette dernière ?
Et bien pour une poignée de raisons fort simples, mais furieusement ingénieuses, formulées en 1948 par le mathématicien américain Claude SHANNON [1916-2001] dans son article "A Mathematical Theory of Communication"...
- La première raison est une bête question de simplicité: il est en effet bien plus facile de concevoir et, surtout, construire des machines reposant sur une logique binaire pour laquelle chaque variable ne peut prendre que deux états.
- La deuxième raison touche à l'univocité de l'information binaire; ce qui n'est pas "0" est "1", et ce qui n'est pas "1" est "0": difficile de faire moins ambigu !
- La troisième raison, conséquente de la précédente, réside dans la reproductibilité de l'information binaire, qualité primordiale lorsque l'on sait qu'un ordinateur est une fourmillière numérique dont les composants ne cessent de s'échanger des flots de données binaires.
- La dernière raison tient à l'universalité du codage binaire qui s'avère capable, en théorieCar nous avons vu qu'en pratique, la numérisation était souvent imparfaite., de représenter toute information structurelle, quelle que soit sa nature.
Bref, il semble bien que cette page va finalement s'avérer assez utile...
Le binaire sinon rien ?
Néanmoins, si vous comptez vous frotter un jour à la programmation voire à certaines applications spécifiques, quelques notions de binaire pourraient bien ne pas se révéler superflues.
Tout ce que vous avez toujours voulu savoir sur le bit...
Inutile d'éloigner les enfants de la seconde partie de cette page, bien au contraire ! Nous allons quelque peu espacer les grandes considérations très théoriques comme nous les avons multipliées jusqu'à présent, et enfin nous rapprocher à grands pas de l'informatique pratique.
Les ptits bits
"Oh there will be an answer, les ptits bits..."
Depuis le tout début de cette page, nous répétons que l'information binaire se constitue d'une succession de caractères "0" et "1". En fait, plutôt que le terme "caractère", nous devrions employer le mot bit.
Le bit est l'unité d'information de l'ordinateur. Comme nous l'avons vu, il ne peut prendre que deux valeurs distinctes et complémentaires notées "0" et "1". Nous allons donc répéter encore une fois, mais cette fois en termes très professionnels: toute information manipulée par un ordinateur, quelle qu'elle soit, se matérialisera par une séquence de bits.
Gare à la faute de goût !
Le bit est expressément du genre masculin et correspond à l'abréviation de l'expression anglaise "chiffre binaire" (Binary digIT). Les anglophiles, même débutants, sauront apprécier le jeu de mot avec le substantif anglais "bit", qui signifie "un petit morceau".
Comme vous vous en doutez, le bit est très important en informatique. En tant qu'unité, il sert non seulement à définir la taille d'une information binaire mais également le débit d'une connexion voire le type d'architecture d'un processeur. Bref, il est partout !
Dans la nature, il se matérialise sous deux formes différentes, selon sa capacité à... changer de sexeExpression facétieuse et imagée... Disons plutôt à commuter, c'est-à-dire à changer de valeur..
Le bit actif (ou bit de travail)
Au sein d'un ordinateur, il serait tentant et délicieusement naïf d'imaginer le bit comme une sorte de nano-composant électronique, quelque chose comme un tout petit compteur affichant "0" ou "1" au gré de sa valeur. La réalité est beaucoup moins "palpable" puisqu'à l'intérieur d'une puce, un bit "se matérialise" par une simple différence de potentielMais vous saviez sûrement déjà qu'un bit pouvait se trouver dans deux états de tension très différente....
Ainsi, en un point donné d'un circuit électronique:
- Si la tension est inférieure à une certaine tension seuil, le bit est considéré comme étant égal à "0",
- Si la tension est supérieure à cette même tension seuil, le bit est considéré comme étant égal à "1".
Sachant cela, il serait légitime, quoiqu'un peu surprenant il est vrai, de dire qu'un bit est susceptible de se trouver n'importe où, tant que ce "n'importe où" est conducteur électrique.
Bien évidemment, ce bit ne sera utile que s'il existe, quelque part au bout ce "n'importe où"Oui, c'est vrai que tous ces "n'importe où" ne font pas très... sérieux. Mais cette page n'étant pas consacrée à l'architecture matérielle des ordinateurs, l'expression s'avère finalement tout à fait acceptable., un dispositif pour le détecter.
Tout est relatif, même la logique
Le fait d'associer les valeurs "0" et "1" des bits à des tensions respectivement basse et haute est somme toute assez péremptoire. Telle est néanmoins le parti pris des machines basées sur une logique positive.
L'alternative est cependant tout à fait envisageable et des composants conçus sur une logique négative s'avèreront tout aussi efficaces.
De fait, tout est question de choix technologique et de représentation interne des bits.
Le caractère très immatériel du bit s'explique finalement assez bien. En effet, un ordinateur est susceptible de manipuler des milliers d'informations binaires chaque seconde; quoi de plus docile et rapide qu'un courant électrique pour "matérialiser" ces bits si fugaces ?
Qui plus est, vous comprendrez maintenant toute la raison d'être de ce gros fil noir qui relie votre belle machine à la prise de courant. Pas de jus, pas de bit !
Le bit passif (ou bit de stockage)
Fort heureusement, le bit n'est pas toujours tributaire d'une source électrique pour exister: nos CD, DVD, disques durs et autres supports de données sont la preuve (surtaxée) qu'il n'est pas besoin de courant pour conserver une information numérique.
De fait, lorsqu'une information binaire est stockée, les bits qui la constituent n'ont plus besoin d'être aptes à changer de valeur: ils peuvent être "fixés", de manière plus ou moins définitive. Tout ce qu'il faut alors, c'est un moyen de les matérialiser de telle manière que l'on puisse identifier un bit "1" d'un bit "0".
Et là, les solutions ne manquent pas:
Exclusivité ! Voici une petite partie du code de Super Mario Kart 1954Aux premiers temps de l'informatique, la solution mécanique fut la première exploitée, principalement sous la forme de cartes perforées. Un trou égal "1", pas de trou égal "0": simple, artisanal, économique
Et, toujours en exclusivité, le logiciel de gravure Nero 0.0 de la même année..- La solution magnétique est celle utilisée par nos feues disquettes et actuels disques durs, la polarisation de particules magnétiques disposées à leur surface permettant de coder les deux types de bits.
- La solution optique est celle exploitée par nos CD et DVD. Ici, ce sont des micro-cavités qui matérialisent les bits "0" et qui sont détectées par la réflexion d'un faisceau laser incident.
Sur les CD-RW, DVD-RW et disques durs, les bits stockées peuvent être lus, effacés puis ré-écrits un nombre considérable de fois. Il est des cas, en revanche, où l'information numérique stockée l'est une fois pour toute. Dans ce cas, les bits sont en quelque sorte "gravés dans le marbre" et ne sont plus modifiables. C'est notamment le cas des CD-R, DVD-R et, moins connues du grand public, des mémoires mortes.
Tant que l'information n'est pas utile, les bits qui la constituent se trouvent stockés sous forme passive sur le support de données (ici, un disque dur).
Dès que l'information est réclamée par le processeur, les bits concernés sont copiés au sein de la puce sous forme de bits "actifs". Ils demeurent sous cette forme électrique tant que dure leur traitement.
Puis, lorsque le processeur en a fini avec eux, ils peuvent être ré-écrits sur leur support où ils retrouvent leur forme passive de stockage.
L'octet: parce que le bit est cénobite
Y'a pas peu dire, 0 ou 1, c'est quand même un peu juste pour mener une intéressante conversation ! Cela peut certes suffire pour exprimer un définitif Oui / Non ou Bien / Mal, mais l'Univers s'avère un chouia plus complexe et il conviendrait de pouvoir représenter des informations un tantinet plus subtiles. Alors, comment qu'on fait ?
Une ancienne morsure de puce...
N-uplet, cette page ?
"Paquet", "groupe", "ensemble": tels sont les mots que le commun des mortels emploierait indistinctement pour décrire cette simple notion de regroupement de bits. Mais le mathématicien a un mot bien à lui, il est vrai bien plus précis: le tuple, ou encore n-uplet.
En mathématique, un n-uplet est une liste ordonnée de n objets. Le termeVous serez donc gentil(le), à l'avenir, de demander à vos amis leur 10-uplet de téléphone et non pas, si vulgairement, leur "numéro". n'est donc pas si inutile car il sous-entend à la fois la notion de taille fixe de la liste, mais également l'ordre bien défini qui doit exister entre ses différents composants.
La solution coule de source: la seule manière de manipuler des informations un tant soit peu complexes à l'aide de bits est d'agréger ensemble ces derniers...un peu comme l'agrégation de nos particules élémentaires suffit à l'infinie diversité de l'Univers.. De fait, c'est exactement ainsi que procède un processeur, qui ne manipule les bits QUE regroupés ensemble, par paquets de longueur fixe.
De manière très imagée, il serait donc pertinent de dire que les ordinateurs avalent leurs données binaires par "bouchées" de taille toujours identique. Il s'agit d'ailleurs d'une caractéristique si essentielle pour un type donné de processeur qu'elle participe à la définition de son architectureCe terme définit à la fois l'organisation fonctionnelle des différents éléments d'un processeur et les technologies utilisées dans la conception de celui-ci. Bref, que du lourd..
De fait, la métaphore plut tellement aux pionniers de l'informatique que ceux-ci décidèrent d'appeler "bouchée" - ou "morsure" - (en anglais "bite"Heu... vous avez vu sur quoi est posé votre doigt, là ?
Normalement, ces choses là ne se font pas...) le n-uplet de bits constituant l'unité de traitement de leurs puces savantes.
Tout cela était charmant, mais il s'avéra rapidement que, même pour un ingénieur américain, le duo de termes "bit" - "bite" prêtait légèrement à confusion. Le plus littéraire d'entre eux émit alors l'hypothèse de remplacer le "i" par un "y": le byte était né !
Or, à l'aube des années 80, à l'heure où la micro-informatique commençait à devenir grand moyen public, les ordinateurs à la mode...et en particulier le 8080 de Intel (déjà)... mâchaient leurs données par bouchées de huit bits. En arrivant en francophonie, le "byte" fut donc élégamment traduit en octet, mot somme toute étymologiquement sensé pour qualifier un 8-uplet.
Un seul bit permet de coder deux états différents: 0 et 1 - Ça, nous le savons déjà.
Deux bits permettent de coder quatre états différents: 00, 01, 10 et 11, c'est-à-dire 22 valeurs différentes.
Trois bits permettent de coder 000, 001, 010, 011, 100, 101, 110, 111 - soit 23 valeurs différentes.
Et ainsi de suite jusqu'à huit bits, qui permettent de coder 28 valeurs différentes comprises entre 00000000 et 11111111.
Le léger problème est qu'en gagnant de la puissance, les processeurs aiguisèrent également leur appétit et furent conçus pour avaler des bouchées toujours plus grandesAinsi, à l'heure où sont écrites ces lignes, la plupart des machines grand public appartiennent à la famille des processeurs dits 64 bits (soit des "bouchées" huit fois plus grandes que du temps du 8080).. S'appuyant sur la définition historique du "byte", il eût été logique que la taille du byte augmentâtWhaou ! Mais ne serait-ce pas là un imparfait du subjonctif ? Moi qui pensais l'espèce totalement éteinte... avec ces évolutions successives. Oui mais voilà ! Quelques années avaient suffi à faire de l'égalité "1 byte = 8 bits" le "E = mc²" de l'informaticien du dimanche.
Non, décidément, il n'y avait aucun désir pour que le byte s'agrandîtIncroyable ! C'est un couple ! L'espèce n'est peut-être pas condamnée après tout......
En quelques années, le succès avait confisqué aux ingénieurs leurs précieux jouets. L'ordinateur cessait d'être l'apanage des scientifiques et autres huiles à gros cursus pour devenir "domestique". L'informatique n'était plus seulement une science, mais aussi désormais un florissant secteur d'activité économique. Les applications se multipliaient, l'ère du "logiciel" débutait, et, dans son sillage, l'industrie du support de données numériques - car il fallait bien stocker quelque part cette foison nouvelle de fichiers binaires.
Or, l'information numérique se démocratisant, il devenait nécessaire de trouver une unité solide afin d'exprimer de manière précise la taille des informations binaires, et, par conséquent, l'espace occupé par les fichiers sur leur support de stockage. Déjà très populaire, le byte-octet était tout désigné pour occuper ce rôle.
Mais dès l'instant où le byte devenait unité, il s'avérait délicat de modifier sa valeur, meme si, comme ce fût rapidement le cas, les nouveaux processeurs voyaient leurs "bouchées" passer à 16, puis 32 bits.
Tant pis pour la définition originelle du byte ! D'unité évolutive définissant le nombre de bits d'une unité de traitement des processeurs, le byte se vit ainsi figé pour l'éternité égal à huit bits, nouvel étalon universel pour définir la taille des fichiers binaires.
Des symboles (presque) standards
Décidément, rien n'est simple avec le byte puisqu'il arrive que les normes internationales elles-mêmes se mélangent les pinceaux à propos du symbole à attribuer au byte (BIl y a en effet une règle qui veut que seules les unités dont l'origine est un nom propre (Volt, Newton...) peuvent prétendre aux caractères majuscules. Or, Gérard Byte n'a absolument rien fait pour le rayonnement de notre unité binaire. ou b) et au bit (b ou bit).
Néanmoins, ces mêmes normes, anglo-saxonnes, sont unanimement d'accord pour dire que l'octet c'est pas bien et que, d'ailleurs, le symbole "o" pourrait être trop facilement confondu avec un zéro.
Libérez d'ores et déjà une zone très accessible de votre cerveau pour y graver cette égalité fondamentale:
1 byte (unité B...majuscule) = 1 octet (unité o...minuscule) = 8 bits (unité b...minuscule)
Les super-unités de l'octet: vieux ko et jeunes ko
Bon, vous vous doutez bien que, de nos jours, on ne mesure pas grand chose avec un octet. Comme notre petit comparatif introductif nous l'a montré, les fichiers binaires, surtout lorsqu'il s'agit de sons ou d'images, atteignent vite des quantités impressionnantes de bits.
D'où, bien évidemment, le recours aux super-unités de l'octet (byte prefixes).
Si l'info vous avait échappé à ce point de la lecture (!), nous vous l'apprenons: l'ordinateur est une créature binaire. Donc, autant dire que pour lui, le nombre décimal 1.000 n'a absolument rien d'extraordinaire. Rien de comparable en tout cas avec le très harmonieux 100000000002, codage en base 2 de notre 1.024 décimalSi ce genre de phrase vous laisse perplexe, ce lien est faite pour vous....
Ainsi donc, l'informaticien du paléolithique supérieur, homme frustre mais somme toute assez logique, considéra très légitime d'attribuer au kilo-octet (ko), grandeur exclusivement informatique, l'équivalent de 1.024 octets. Et ainsi de suite pour le mega-octet (Mo) égal à 1.024 ko, le giga-octet (Go) égal à 1.024 Mo, et cetera.
Nous vous le disions encore il y a peu: avec le byte-octet, rien n'est décidément simple !
Suites divergentes
Tant que les ordinateurs d'antan
A ce stade, l'auteur de cette page ne peut s'empêcher de verser une larme nostalgique sur son premier ordinateur: un Apple IIc, véritable monstre technologique doté de 128 ko de mémoire et d'un disque dur de... heu, en fait, il n'avait pas de disque dur. Le bon temps, quoi... se contentaient de gérer des kilo-octets, la confusion 1.000/1.024 restait somme toute amusante. Après tout, les deux valeurs ne différaient que de 2,4% !
Oui, mais voilà ! Les ordinateurs devenant de plus en plus puissants et de mieux en mieux dotés en mémoire et en espace de stockage, le fossé entre unités binaire et décimale ne pouvaient que s'accroître. Ainsi, avec le mega-octet, la différence entre base 2 (220) et base 10(106) grimpait à 4,86% - puis à 7,37% avec le giga-octet !
Et le tera-octet, qui pointe déjà son nez, n'allait rien arranger...
Après tout, l'informatique n'étant pas vraiment une science humaine, il eût été envisageable de conserver cette spécificité très binaire de la définition des super-unités de l'octet. Mais c'était sans compter sur le manque d'harmonie entre les différents acteurs de l'industrie du secteur.
En effet, alors que les fabricants de mémoire continuent d'exprimer la capacité de leurs barrettes en unités binaires (1 Go = 1.024 Mo), les fabricants de disques durs ou de réseaux de communication ont, eux, décidé d'adopter la définition historiquement décimale des super-unités (pour laquelle 1 Go = 1.000 Mo). Situation kafkaïenne lorsque l'on sait qu'un disque dur stocke pourtant des fichiers dont la taille est exprimée, elle, en super-unités binaires !
Bref, il était temps que les organismes mondiaux de normalisation arbitrassentOh, hé ! C'est bon, on a compris... les différents points de vue, ce que l'IECInternational Electrotechnical Commission. Des gens très sérieux qui déterminent ce qui est bien et ce qui n'est pas bien de faire en informatique. fit en 1999 sous la publication indexée IEC 60027, en priant gentiment l'informatique de se plier aux règles très décimales de la science humaine.
Néanmoins, afin de ne pas complètement fâcher les vieux de la vieille...comme l'auteur de cette page !, un nouvel ensemble de préfixes fut instauré en parallèle de l'orthodoxe, avec des noms bien sérieux et des équivalents cette fois conservés en "logique" binaire:
| super-unités décimales | super-unités binaires | ||||||
| nom (SI) | symbole (SISystème International. Bref, les unités officielles.) | nom (F) | symbole (FSymboles francophones à nous. Totalement illégaux.) | valeur | nom (SI) | symbole (SI) | valeur |
| kilobyte | kB | kilo-octet | ko | 103 | kibibyte | kiB | 210 |
| megabyte | MB | mega-octet | Mo | 106 | mebibyte | MiB | 220 |
| gigabyte | GB | giga-octet | Go | 109 | gibibyte | GiB | 230 |
| terabyte | TB | tera-octet | To | 1012 | tebibyte | TiB | 240 |
| petabyte | PB | peta-octet | Po | 1015 | pebibyte | PiB | 250 |
| exabyte | EB | exa-octet | Eo | 1018 | exbibyteEt si. On vous jure que si. | EiB | 260 |
Règlement de compte à octet-koral
En effet, d'après le fabricant de disque dur, son produit est capable de stocker 400.109 octets. Or, le système d'exploitation y verra plutôt 400.109 / 1.024 kilo-octets (soit 390.625.000 ko), c'est-à-dire 390.625.000 / 1.024 mega-octets (soit 381.467 Mo environ), c'est-à-dire 381.467 / 1.024 giga-octets, soit environ 372,5 Go.
Et hop, voilà 27 Go d'espace évaporé avant même d'y avoir stocké le moindre bit !
Les puces parlent mot-à-mot
Revenons un instant à l'appétit de nos puces savantes.
Nous avions laissé nos processeurs avaler leurs données par bouchées de huit bits, c'est-à-dire d'octets. En l'espace de quelque vingt années, pourtant, les processeurs augmentèrent la taille de ces bouchées à 16...avec le processeur Intel 8086., puis 32...avec le processeur Intel 80386DX. et jusqu'à 64 bits...depuis le très discret processeur Intel Itanium. pour les processeurs actuels.
Le byte-octet ayant perdu, malgré son étymologie, toute aptitude à mesurer la taille croissante de ces bouchées, il fallait trouver un mot pour définir cette caractéristique si essentielle de l'architecture des processeurs.
Ce mot fut vite trouvé, ce fut le mot: word, soit le mot... mot en français.
Intel et les gros mots
Intel est si incontournable dans le petit univers de l'informatique que le mot perd parfois -lui aussi- sa connotation "évolutive" pour servir d'unité à l'architecture 80x86 du géant américain.
Dans ce contexte très précis, on définit alors:
- un byte (octet) = 8 bits
- un word (mot) = 16 bits
- un dword (double mot) = 32 bits
- un qword (quadruple mot) = 64 bits
- un dqword (double quadruple mot) = 128 bits
Ainsi, un mot défini le nombre de bits qu'un processeur manipule en une seule fois. Il est d'ailleurs assez fréquent de trouver l'expression "mot machine" afin d'insister sur l'aspect purement technologique du terme.
A la différence du byte-octet, le mot est resté un terme d'architecture matérielle et n'est donc jamais utilisé comme unité de taille de fichiers.
Au sein d'un processeur, le bit est effectivement "matérialisé" sous forme d'une tension électrique. Dans ce cas, et dans ce cas seulement, il se mesure - ou l'on devrait plutôt dire: il s'estime - à l'aide d'un volt-mètre. Mais nous avons vu qu'il pouvait également être matérialisé par un champ magnétique, un micro-relief voire même un simple trou, comme dans les cartes perforées du temps jadis.
Notons tout de même que de par les progrès technologiques, ces "imperfections" sont de moins en moins détectables par les sens humains.
Le binaire en pratique
Bien ! Nous avons fait connaissance avec le binaire, avons pu mesurer toute sa truculence et sa convivialité. Il est temps désormais de nous pencher sur des problèmes un chouia plus pratiques quoique fondamentaux, comme par exemple: "Comment manipuler le binaire sans devenir complètement dingue ?" ou encore: "Quelle est la bonne manière de tronçonner une séquence binaire afin de bien la ranger dans un disque dur ?"
L'hexadécimal: "humaniser" le binaire
Arrivé(e) à ce stade de votre lecture, nous tenions absolument à vous féliciter. Vous avez, en effet, su braver l'austère tableau introductif planté au début de cette page tel un barbelé sur une plage normande, avez vaillamment franchi l'obstacle hérissé de bits et continué, coûte que coûte, l'exploration du binaire sans vous plaindre. Respect et révérence.
Car le fait est indéniable: le binaire, c'est pénible. Terriblement pénible...d'où l'expression: la croix et le binaire..
L'observation est évidente: l'information binaire, si elle sied parfaitement à la machine, est proprement incompatible avec l'entendement humain qui ne peut, non seulement raisonner en terme de données binaires, mais même manipuler celles-ci sans, tôt ou tard, commettre une erreur de transcription dont les conséquences peuvent être fâcheuses.
"Humaniser" le binaire est donc une nécessité, tout aussi fonctionnelle que purement esthétique.
Reste à trouver un moyen tout à la fois simple, efficace et rapide.
Travaux pratiques
- Solution n°1: remplacer chaque octet par son équivalent en base 10Mode d'emploi au bout de ce lien....
Résultat: 217 254 124 51 110 38 64 126 126 227 38 193 211 211 47 178.
Mmmouais... Pas vraiment simple, pas vraiment rapide, pas vraiment efficace... - Solution n°2: remplacer chaque octet par un symbole unique selon sa valeur.
Objection ! L'informaticien, même un peu dingue par nature, ne se voit pas du tout apprendre par coeur un alphabet de 256 caractères. - Solution n°3: coder chaque couple de bits par un symbole différent selon sa valeur. Par exemple: 0=00, 1=01, 2=10, 3=11.
Résultat: 3101 3332 1330 0303 1232 0212 1000 1332 1332 3203 0212 3001 3103 3103 0233 2302.
Facile, oui. Rapide, passe encore. Efficace ?
Une solution simple existe pourtant: c'est l'hexadécimal (hexadecimal). Autrement dit: la base 16.
L'idée est simple: remplacer chaque quartet de bits par un symbole différent selon sa valeur. Un tel quartet pouvant prendre 24 valeurs différentes, il nous faut donc 16 symboles différents pour parvenir à nos fins.
Pour les dix premiers, les chiffres décimaux 0 à 9 feront parfaitement l'affaire. Mais quid pour les 6 autres ?
| Quartet de bits | Symbole hexadécimal |
| 0000 | 0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
L'hexadécimal se révèle tout à la fois simple et rapide puisqu'aucun calcul complexe n'est à entreprendre. Il suffit, pour procéder à la transcription en base 16, de regrouper la séquence binaire par paquets de quatre bits et de remplacer ceux-ci par leur symbole hexadécimal correspondant. Et vice versa pour une transcription inverse.
Difficile de faire plus simple !
Conséquence immédiate et quasi jouissive: tout octet se trouve de fait codé par une séquence hexadécimale comprise entre 00 (pour l'octet 00000000) et FF (pour l'octet 11111111).
Bon, il est vrai que le chemin est encore long pour rendre une séquence binaire sexy et désirable mais, l'air de rien, l'hexadécimal a sauvé de la démence un nombre incalculable d'informaticiens.
Attention ! Rien de plus simple que de confondre un nombre exprimé en base 10 et un nombre exprimé en base 16.
Il est donc très utile et très prudent de préciser qu'un nombre est exprimé en base 16 en le mentionnant en indice, de cette façon: 16316.
Certains langages de programmation utilisent d'autres convention, en faisant précéder le nombre de divers symboles (0x...comme en C ou en Java., $...comme en Pascal., &h...comme en Basic., #16...comme en LISP.) - ou en le faisant suivre du caractère h...comme en Assembleur..
Il est vrai que manipuler directement des données binaires est un acte insensé que l'utilisateur lambda n'aura jamais à accomplir. Il y a cependant quelques situations où il s'avère plus rapide, voire, et oui ! plus pratique de s'en remettre au format binaire, sans être pour autant un gourou de la programmation.
L'exemple type pour démontrer le haut intérêt des valeurs hexadécimales est le codage des couleurs. De nombreux logiciels définissent les couleurs sous forme d'un trio de valeurs comprises entre 0 et 255: une valeur pour le rouge, une valeur pour le vert et une valeur pour le bleu. Ce codage, appelé RVB, conduit à ce que chaque couleur se trouve exprimable sous la forme d'une chaîne de six caractères hexadécimaux, souvent précédée du symbole #.
Ainsi, par exemple, la couleur du texte que vous lisez est-elle #0000A0, soit un triplet Rouge:0, Vert:0, Bleu:160.
Tous ces efforts partaient d'un bon sentiment, mais c'est oublier que le découpage doit se faire de la droite vers la gauche du nombre à convertir.
Tous ces efforts partaient d'un bon sentiment, mais c'est oublier que le découpage doit se faire de la droite vers la gauche du nombre à convertir.
La notation octale est également parfois utilisée ça et là en informatique. Ici, ce ne sont pas quatre mais trois bits qui sont décrits par un seul symbole compris entre 0 et 7. Un nombre octal peut être indicé par le chiffre 8 afin de préciser sa nature, mais il est également possible de rencontrer les nombres octaux précédés d'un zéro: 4218 = 0421.
Parce que, malgré son nom, l'octal se concilie mal avec l'octet, il est de fait très peu utilisé en informatique, hormis pour certaines situations très spécifiques, comme par l'exemple l'expression des permissions d'accès sur Unix.
Endianisme: une guerre de trancheurs
Avertissement préalable !
Si vous êtes venu sur cette page presque par hasardUne faute de frappe dans une requête Google peut-être... (ici, on parle de bit)., si votre but en informatique est de vous faciliter l'existence ou si, pour vous, la question binaire ne mérite même pas d'être posée alors qu'on tue encore des baleine de par le monde... alors, croyez moi, mieux vaut peut-être stopper là votre lecture tant le sujet qui va suivre risque de vous paraître un tantinet... surréaliste...
A l'origine de l'insoluble problème, cette simple constatation: alors que la mémoire des ordinateurs est généralement organisée en octets, de nombreuses données réclament plus d'un octet pour leur codage binaire, d'où la nécessité de tronçonner l'information binaire avant de l'utiliser.
Oui, bon... C'est sûr qu'exposé de la sorte, notre sommeil s'en sort a priori indemne... Mais il n'en fallait pas plus pour dresser les éleveurs de puces les uns contre les autres.
La guerre de l'endianisme était déclarée !
Pour mieux appréhender la dimension tragique de la chose, considérons une donnée binaire quelconque, notée en base 16 #ABCD. Cette donnée peut être décomposée en deux octets (#AB et #CD) de manière à peu près consensuelle. Mais tout dérape quand il s'agit par la suite de stocker ces deux octets: faut-il d'abord stocker #AB puis ensuite #CD ou d'abord stocker #CD puis ensuite #AB ?
A droite, Sun et Motorola défendent la première approche bec et ongle: la logique ordonne que les données soient stockées en commençant par l'octet le plus "significatif"; ce sont les "gros-boutistes" (big-endian).
A ma gauche, Intel, à la tête de la fraction rivale des "petits-boutistes" (little-endian), n'en démord pas et reste persuadé du contraire.
On vous avait prévenus: l'heure est grave.
Parce que les informaticiens ont eux aussi été des enfants
Parce que l'informaticien, souvent anglophones, connait parfaitement ses classiques.
En 1726, un pasteur irlandais appelé Jonathan Swift [1667-1745] publie anonymementraté ! un roman de science-fiction (pour l'époque) intitulé "Gulliver's Travels" qui conte les aventures d'un certain Gulliver aux pays merveilleux des HouyhnhnmsÇa se prononce comme ça s'écrit..., des Brogdingnags et autres Lilliputiens.
Lilliput, justement, et Blefuscu sont deux petites nations voisines mais en guerre perpétuelle à cause d'un terrible différend qui les oppose sur la bonne manière de manger les oeufs à la coque: par le petit bout (little end) clament les premiers, par le gros bout (big end) assurent les seconds. La métaphore est puissante, l'ellipse osée, la morale sous-jacente... Lilliputiens, Blefuscudiens... Anglais et Français ? Catholiques et Protestants ?
Toujours se méfier des oeuvres a priori trop niaises...
Oui, c'est sûr que le problème peut sembler quelque peu dérisoireOn se moque, on se moque... Mais après tout, Français et Américains ne sont pas loin d'avoir le même problème lorsqu'il s'agit d'écrire une date..., mais à l'heure d'Internet et de la télédéclaration fiscale, mieux vaut s'assurer que deux ordinateurs connectés ensemble s'entendent sur la manière de comprendre les octets qu'ils échangentImaginez le serveur du service compta, de type big-endian, transmettre le montant de votre salaire à l'ordinateur de votre banque, de type little-endian..
Bien sûr, comme toujours, l'utilisateur insouciant n'aura jamais à s'inquiéter de ce genre de turpitudes binaires, mais ceux et celles pour qui l'informatique est plus qu'un simple loisir devraient garder à l'esprit cette drôle de guerre des trancheurs.
Enfin ! Toute cette très (trop) longue page pour vous faire prendre conscience que, si cher l'ayiez-vous payé, votre ordinateur ne comprend que le langage binaire.
Bref, des "1" et des "0". Et rien de plus.
Mais aprés tout, le divin Créateur n'a-t-il pas fait des merveilles avec une seule côte d'homme ?
M. Intel devrait pouvoir faire un ou deux trucs sympas avec deux petits bits de puce...
Pour les plus |
Codage binaire des nombres. Codage binaire du texte. |





Si une ou plusieurs sommités venant à croiser ce site acceptaient d'endosser cette écrasante responsabilité de caution intellectuelle pour une ou plusieurs leçons, elles seraient grandement remerciées et leur nom bien évidemment gravé en lettres d'or en tête de page, leur assurant par là même gloire et renommée quasi planétaires.