Ouh la, je viens d’entendre quelqu’un expliquer que la traduction de byte en français c’est octet. Comme c’est tout à fait faux et que vous savez qu’à chaque fois qu’il me faut expliquer quelque chose de manière pédante, je vous le partage, un fil « bazar des unités dans l’informatique ».

Nos ordinateurs fonctionnent de manière binaire : ça compte avec deux chiffres, 0 et 1. C’est pratique, ça se représente facilement : ouvert, fermé. Allumé, éteint. Courant, pas courant. Premier ministre, pas Premier ministre.

IDÉE REÇUE : non, la logique binaire (par 2) n’est pas une obligation pour les ordinateurs. On a eu une machine à calculer (en bois !) en ternaire dès les années 1840, et des ordinateurs ternaires dès 1958. Pour le principe c’est tout aussi simple : plutôt que de baser tout sur du courant / pas de courant, on utilise tension positive / pas de tension / tension négative. Vous intuitez que de tels ordinateurs sont intrinsèquement plus rapides ; mais c’est plus contraignant en ingénierie. Ça revient en gros à moins cher de faire en sorte d’améliorer un ordinateur binaire pour qu’il dépasse son équivalent ternaire. C’est très triste. Mais bref. On a des ordinateurs binaires.

Cette donnée la plus simple, 0 ou 1, ça s’appelle un chiffre binaire. Parce que ça claque. Non, je déconne, à part un Académicien tout le monde dit bit, et ça se prononce comme ce que j’ai de taille raisonnable.

Mais avec ça on ne va pas très loin (bah on compte jusqu’à 1, quoi), donc comme avec nos dix chiffres, on les place côte à côte pour faire des nombres plus grands. On appelle ça un mot, ou word en anglais. Comme les informaticiens font de la rétention anale, les mots ne peuvent pas faire n’importe quelle taille. C’est carré chez nous. Enfin, c’est le processeur qui décide par sa construction, mais c’est pour dire. En général on manipule des mots de rarement 4, plus souvent 8, 16, 32 ou 64 bits.

Ces mots, on les range dans des cases dans la mémoire, que l’ordinateur peut désigner pour lire ou écrire dedans. Pour ça il a une adresse, donc on dit que ces emplacements sont adressables. Chez IBM, on appelait la plus petite quantité de mémoire adressable une bouchée de bits. C’est important comme information, cette taille, parce que ça veut dire qu’une donnée plus petite prendra au minimum cette place quand même. Donc bouchée, bite, mais pas prononcé pareil, suivez un peu.

Sauf qu’à l’époque, on tapait encore à la machine et les imprimantes étaient pas folles. Du coup, entre les gens qui oubliaient de taper un e, ou le e mal fichu (« Euh Marcel, c’est 8 bit ou 8 bite qu’on doit stocker ? Ah, non, c’est 8 bit, une mouche a chié sur le papier ! »), ils ont pris l’habitude de l’écrire byte pour différencier.

Mais on a eu des systèmes avec des bytes de 4, 6, 8, 12, 20 bits ! C’était un peu la foire, alors on a décidé d’arrêter les conneries dans les années 70 : les processeurs non spécialisés allaient s’aligner sur des bytes de 8 bits. Parce qu’il y a un truc, voyez-vous.

Le plus courant, au tout début, c’était un byte de 6 bits, et des mots multiples de 6. Raison simple : ça permet d’avoir 64 valeurs différentes, et ça c’était le minimum pour stocker une lettre de l’alphabet à pas cher. Mais pas de majuscules, si on voulait garder ponctuations et chiffres. Le byte de 8 bits est intrinsèquement lié à la volonté de stocker l’alphabet incluant quelques caractères accentués et des minuscules.

… Attends. Si on peut stocker un caractère sur 8 bits, on pourrait appeler ça un « char » ? « Donc 8 bits valent 1 char, sauf si on vire les majuscules, et dans ce cas 1 char peut valoir 6 bits. 1 byte vaut 8 bits, sauf s’il en vaut moins, ou peut-être plus, mais normalement non… 1 word vaut 2 bytes, sauf si le processeur décide de faire autrement, mais il sera toujours un multiple de son byte. Mais qu’il peut définir comme il veut en fait.

— C’est le bazar, non ?

— Non mais attends, parce que du coup, parfois on a les yeux plus gros que le ventre et le byte peut être divisé en deux pour faire des trucs utiles. Donc c’est le nibble (grignotage ou petite bouchée donc). Qui lui aussi n’a pas une taille fixe.

— MAIS ENFIN, on peut pas avoir des unités fixes qui ne varient pas avec le sens du vent ? Au moins ? »

Et c’est là qu’arrive le bon sens français du système international qui a du sens. L’octet, c’est 8 bits. Tout le temps et comme le nom l’annonce. Le quartet, 4 bits, le septet, 7 bits, le seizet, 16 bits… Je te dis trente-deuzlet et tu sais combien.

Sauf que ça a vrillé. Forcément que ça a vrillé. Parce que le quartet, avec ses 4 bits (binary units), il permet d’écrire tous les chiffres en hexadécimal. C’est donc aussi… un hexit ! Et puis l’octet, c’est devenu la base. Du coup, le seizet, c’est un peu basé dessus non ? Si on appelait ça… un doublet ! D’ailleurs le seizet permet de coder tous les caractères de toutes les langues, c’est mieux que le char. Mais le word aussi c’est un seizet. Mmm. CONFUSION POSSIBLE.

Je sais ! On va appeler ça un rune. C’est comme un char mais qui fait la taille d’un word, mais qui est fixe lui. Si ça fait sens (ça ne fait pas sens). Ça va être moins confus (c’est encore plus confus). Et du coup on va définir aussi le double mot et le quad qui est quatre fois un mot ! Ça part tellement dans tous les sens que je suis à demi persuadé que si je glissais une fausse unité dans ce thread, je ne serais pas surpris que tout le monde l’utilise au premier degré dans 5 ans autour de moi !

Heureusement que sur ces unités on peut coller nos bons vieux préfixes issus de la Révolution. Ça, ça va être propre. Non ? Non ?

1 Mo = 10³ ko = 10³ × 10³ o = 1 000 000 octets. Basique. Simple. Ah merde. Des gens utilisent le byte quand même… et comme c’est pas standard, le K est en majuscule ? Euh, ok. Simple. Un peu. 1 MB = 10³ KB = 10³ × 10³ B = 1 000 000 bytes, ou 1 Mo.

Jusque-là tout va très bien, pourquoi il nous emmerde Lomig ? PRÉPAREZ-VOUS au… « On va dire qu’on est dans les ordinateurs, t’as vu ? » Et dans les ordinateurs on ne fonctionne pas en puissances de 10 mais de 2. Donc : 1 Mo = 2¹⁰ ko = 2¹⁰ × 2¹⁰ o. Oui. EN MÊME TEMPS, 1 Mo vaut 1 000 000 ou 1 048 576 octets. On sait pas. Ça dépend de la personne qui parle. ¯\(ツ)/¯ Et la même en Bytes, à ne pas confondre avec les Bits.

« Ça suffit » aura-t-on dit il y a quelques années. « On va inventer de nouvelles unités pour supprimer la confusion ! » Accueillez chez vous… le Mio. Qui vaut 2¹⁰ kio = 2¹⁰ × 2¹⁰ o. Ou le MiB. Qui vaut 2¹⁰ KiB = 2¹⁰ × 2¹⁰ B, et attention à la majuscule du K.

Et ce qui devait arriver arriva : 1 ko vaut toujours 1000 ou 1024 octets encore aujourd’hui, on sait pas, et 1 kio est méconnu de la plupart, ajoutant de la confusion. Les vendeurs de disques durs parlent en TB (1 To de place !), mais les OS parlent en TiB mais écrivent en Go (nouveau disque 937 Go disponible !). Les vendeurs de wifi et de fibre mélangent les deux pour se vendre…

Bref. Le Byte n’est pas la traduction d’octet. Octet se traduisait par octad. Et finalement c’est tombé en désuétude et ils ont fini par prendre le mot français, cocorico. Tout le monde devrait parler en Mo et Go, même en anglais, et avec les puissances de 10, parce qu’on s’en fout du nombre de cases que ça prend en mémoire en 2025. Mais quand on a des nibbles, des hexit et des runes… bah est-ce qu’on en est encore à ça près ?