Bit, Byte, Octet et préfixes binaires

Bonjour à tous et bienvenue dans ce petit article traitant des unités de l’informations et des préfixes binaires du système international.

La petite digression d’aujourd’hui vise à répondre à deux petites questions qui, si elles ne sont pas vraiment capitales, donnent souvent lieu à des réponses incorrectes même parmi les informaticiens :

  • Quelle est la traduction d’octet en anglais ?
  • Pourquoi un disque dur d’une taille N est parfois détecté comme ayant moins d’espace de stockage ?

Ces deux questions vont nous permettre de revoir les unités de mesures de l’informations du Système International et les préfixes binaires de ce même SI.

L’octet, le bit, le byte … ?

Commençons par la première question. La réponse qui revient le plus souvent est que le byte est la traduction anglaise du mot française octet. En fait, octet en anglais se dit … octet.

La base de la mesure d’une quantité d’information est le bit, qui signifie tout bêtement BInary digiT (chiffre binaire). Son symbole est bit (norme IEC) ou le b (norme IEEE).

Toutes les autres unités sont donc des assemblages (de tailles fixes ou variables) de bits.

L’octet est également une unité de mesure de l’information qui équivaut exactement à huit bits. Un octet, noté o, est donc capable de contenir 28 = 256 valeurs possibles. Le terme octet est d’ailleurs particulièrement utilisé dans les spécifications de protocoles (IP par exemple).

Mais alors, qu’est ce qu’un byte ? La question est plus difficile parce que de nos jours, byte est très souvent utilisé à la place d’octet dans les langages anglo-saxons.

Un byte est une unité de mesure variable correspondant à la plus petite unité adressable par le processeur. De nos jour, un byte vaut majoritairement 8 bits, soit un octet. Il est de plus en plus fréquent que byte soit utilisé implicitement comme valant 8 bits. En français, le mot multiplet correspond au terme anglais byte, même si il est très peu utilisé.

Le symbole du byte est B. Il entre en conflit avec le bell du système international, mais le risque de confusion est faible, d’autant qu’on utilise en général le dB.

Une nuance importante ?

La différence entre octet et byte est subtile, d’autant que la majorité des processeurs modernes ont des bytes de 8 bits, mais a son importance. Même si la différentiation entre byte et octet se perds parfois dans certains domaines de l’informatique, certains continuent à utiliser cette différenciation sémantique.

En C ou en C++ par exemple, le standard spécifie la taille des types fondamentaux en byte. De la même manière, l’opérateur sizeof retourne une valeur en byte et non pas en octet.

The fundamental storage unit in the C + + memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set and is composed of a contiguous sequence of bits, the number of which is implementation-defined.

La taille d’un byte est effectivement définie par l’implémentation en C++. Si vous travaillez dans les milieux des automates industriels ou de l’embarqué, il peut arriver d’avoir des bytes de 6, 7, 9 ou encore 12 bits.

Notez cependant que depuis C++14, char, unsigned char et signed char doivent être capable de stocker au moins 256 valeurs (cette modification avait pour objectif principal de facilité l’usage de l’UTF-8 en C++).  Cela implique que le compilateur doit effectuer des opérations supplémentaires dans le cas où la plateforme cible utilise un byte inférieur à 8 bits.

Les autres unités de mesure de l’information

Le bit, l’octet et le byte sont les unités les plus courantes pour la mesure de l’informations. Je vous propose ici de découvrir quelques autres unités oubliées ou moins utilisées.

L’octet désigne spécifiquement 8 bits, le terme octave n’est plus utilisé mais avait la même définition. On rencontre parfois les termes français : quartet (4 bits, 0.5 octet), doublet / seizet (16 bits, 2octets), quadlet / trente-deuzet (32 bits, 4octets) ou encore l’octlet (64 bits, 8octets).

Le mot (word en anglais), est une unité assez courante, qui désigne l’unité de base manipulée par le processeur (qui n’est pas forcément la plus petite adressable). Il s’agit naturellement d’un multiple de byte. Le plus souvent, un word vaut 16, 32 ou 64 bits. Certaines architectures supportent une taille de word variable (variable word architecture).

Par abus de langage, les termes suivants restent souvent associés aux valeurs suivantes (particulièrement dans les langages assembleurs) :

  • word : 16 bits.
  • dword (double word) : 32 bits.
  • qword (quadruple word) : 64 bits.

Un nibble correspond à 4 bits, ou un demi byte en fonction des sources. Il permet de se référer à un chiffre hexadécimal d’un byte de 8 bits (la partie faible ou forte d’un byte).

On pourrait aussi cite le qubit (quantum bit ou encore qbit), qui correspond au bit utilisé dans l’informatique quantique.

Beaucoup d’autres termes existent en fonction des champs d’application, comme page pour la pagination ou sector pour les disques durs. Sans compter tous les termes qui ne sont plus du tout utilisés (cette page Wikipédia liste un certain nombre).

Les prefixes binaires ?

Malgré les définitions hétérogènes des différentes unités, ces désaccords sémantiques ne permettent pas de répondre à la seconde question posée en début d’article : Pourquoi un disque dur d’une taille N est parfois détecté comme ayant moins d’espace de stockage ?

En effet, c’est surement arrivé à beaucoup d’acheter une disque dur qui était vendu comme ayant une capacité d’1To par exemple, puis de se retrouver à lire 931Go depuis le système d’exploitation (notamment avec Windows).

Où est le problème alors ? Publicité mensongère ? 71 Go sont utilisés par le système (indexation, tables de description) ?

En fait, la raison est bien plus simple puisqu’elle réside dans les deux types de préfixes du Système International (SI). Les préfixes classiques du SI sont certainement connus de tous (kilo, méga, giga…) et sont également utilisés en informatique. Ils représentent des facteurs multiplicateurs multiples de 10 (103, 106…).

Les préfixes binaires utilisent quant à eux des facteurs de puissances de 2, et sont définis de la sorte :

Préfixe BinaireSymbolePréfixe SIDifférenceFacteur
kibiKikilo (k)2.4%210 = 1 024
mébiMiméga (M)~4.9%220 = 1 048 576
gibiGigiga (G)
~7.4%230 = 1 073 741 824
tébiTitéra (T)~10.0%240 = 1 099 511 627 776
pébiPipéta (P)
~12.6%250 = 1 125 899 906 842 624
exbiEiexa (E)~15.3%260 = 1 152 921 504 606 846 976
zébiZizetta (Z)
~18.1%270 = 1 180 591 620 717 411 303 424
yobiYiyotta (Y)~20.8%280 = 1 208 925 819 614 629 174 706 176

Des préfixes binaires correspondants aux préfixes SI inférieurs à l’unité n’existent pas, principalement parce qu’ils n’ont pas de sens dans le cadre du bit qui est par définition indivisible. On pourrait cependant en avoir usage dans d’autres domaines de la science un jour. Notez aussi que le système de préfixe binaire ne prévoit pas d’équivalent pour déca (101) et hecto (102).

Ainsi, certains composants ne nécessitant pas de manipuler des données étant des puissances de deux (comme les disques durs par exemple), les fabricants préféreront donner la valeur avec les préfixes SI, alors que dans d’autres domaines on utilisera les préfixes binaires.

Cependant la différence préfixe binaire et préfixe SI n’est pas encore généralisée ni acceptée par tout le monde.

C’est ainsi que si vous achetez un disque dur de 1To (1012 octets), vous disposez effectivement de mille milliards d’octets.

Cependant, certains systèmes d’exploitation (comme Windows) ou explorateurs de fichiers, ne font pas la distinction entre To et Tio. Windows par exemple, compte en Tio mais affiche l’unité “To”. De fait, 1To valant en réalité environ 0.931 Tio (0.931 * 240 ≈ 1*1012), la disque dur affiche 931 Go d’espace de stockage, alors qu’il devrait afficher 931 Gio. Windows n’est pas le seul à faire cela, mais la majorité des distributions Linux récentes affichent l’espace de stockage avec les préfixes binaires pour éviter la confusion.


Vous l’aurez comprit, que ce soit pour les unités ou pour les préfixes, tout le monde ne suit pas les même définitions et cela entraîne parfois des confusions importantes.

J’espère que ce court article aura pu préciser certains points et je vous dis à la prochaine fois !

%d bloggers like this: