Imaginez : vous allez acheter un kilogramme de boudin, vous marchez un kilomètre à pied, puis vous rentrez chez vous profiter du ronronnement rassurant de votre radiateur électrique d’un kilowatt.
Voilà des usages clairs, propres, mesurables. Personne ne vous explique qu’un kilogramme vaut 1 024 grammes parce que, voyez-vous, « historiquement, c’était plus pratique comme ça ».
Et si quelqu’un tentait tout de même l’expérience, vous auriez probablement quelques questions pour votre balance, votre boucher et, éventuellement, la Direction générale de la concurrence.
Dans l’informatique, en revanche, cette petite entorse au vocabulaire des unités a prospéré pendant des décennies avec une remarquable décontraction.
La règle à retenir avant d’aller plus loin :
kilo = 1 000.
kibi = 1 024.
Le reste de l’article consiste essentiellement à comprendre pourquoi l’informatique a réussi à compliquer une phrase aussi simple.
Kilo, méga, giga : normalement, c’est simple
Dans le Système international d’unités, les préfixes sont décimaux. Ils correspondent à des puissances de 10 et leur signification ne dépend ni du métier, ni du système d’exploitation, ni de l’humeur du développeur qui a écrit l’utilitaire.
| Préfixe | Symbole | Valeur | Exemple |
|---|---|---|---|
| kilo | k | 103 = 1 000 | 1 kg de pommes de terre, 1 km à vélo, 1 kW de chauffage |
| méga | M | 106 = 1 000 000 | Une fréquence autour de 100 MHz, 1 mégapixel pour l’appareil photo de mamie |
| giga | G | 109 = 1 000 000 000 | Quelques GHz pour un processeur, 1 GW pour une grosse centrale, 1 gigatonne de CO₂ pour ruiner l’ambiance |
| téra | T | 1012 = 1 000 000 000 000 | 1 To pour un disque vendu dans le commerce |
Ces préfixes sont décimaux. Point.
Kilo ne signifie pas 1 024. Méga ne signifie pas 1 048 576. Giga ne signifie pas 1 073 741 824.
Ce serait un peu comme décider que « douze » signifie parfois treize lorsqu’on parle de plomberie. On pourrait probablement s’y habituer. Ce ne serait pas une raison pour le faire.
Le vieux péché informatique : appeler 1 024 « kilo »
Les ordinateurs représentent naturellement leurs données en binaire. Les puissances de 2 apparaissent donc partout : 28, 210, 220, 230…
Or 210 vaut 1 024, un nombre suffisamment proche de 1 000 pour qu’une génération entière d’informaticiens se soit dit, en substance : « Ça ira bien comme ça. »
C’est ainsi que l’usage informatique historique a longtemps donné :
| Notation historique | Valeur généralement visée | Puissance de 2 |
|---|---|---|
| 1 Ko / 1 KB | 1 024 octets | 210 |
| 1 Mo / 1 MB | 1 048 576 octets | 220 |
| 1 Go / 1 GB | 1 073 741 824 octets | 230 |
| 1 To / 1 TB | 1 099 511 627 776 octets | 240 |
Historiquement, cela avait une certaine logique technique. Les capacités de mémoire vive, les espaces d’adressage, les pages mémoire et de nombreuses structures internes des ordinateurs sont naturellement organisés autour de puissances de 2.
Mais cela ne transforme pas pour autant le préfixe kilo en synonyme officiel de 1 024.
Dire que « les ordinateurs comptent en binaire » ne suffit d’ailleurs pas à justifier toutes les dérives. Un fichier peut contenir exactement 734 291 octets. Un disque peut être vendu avec exactement 1 000 000 000 000 octets. Un débit réseau peut être de 1 000 000 000 bits par seconde. Le silicium ne porte pas plainte.
Le problème n’est donc pas l’existence des puissances de 2. Elles sont indispensables. Le problème est d’avoir réutilisé pour elles des préfixes qui possédaient déjà une définition.
Appeler 1 024 « kilo », c’est un peu comme appeler une girafe un poney allongé. On comprend l’idée générale, mais la taxonomie commence à sentir la réunion de projet du vendredi soir.
La solution existe : les préfixes binaires
Pour supprimer cette ambiguïté, la Commission électrotechnique internationale — IEC en anglais, CEI en français — a introduit en 1998 des préfixes spécifiques aux puissances binaires.
| Nom | Notation française | Notation internationale | Valeur |
|---|---|---|---|
| kibioctet | Kio | KiB | 210 = 1 024 octets |
| mébioctet | Mio | MiB | 220 = 1 048 576 octets |
| gibioctet | Gio | GiB | 230 = 1 073 741 824 octets |
| tébioctet | Tio | TiB | 240 = 1 099 511 627 776 octets |
Le principe devient alors parfaitement clair :
- 1 ko ou 1 kB = 1 000 octets ;
- 1 Kio ou 1 KiB = 1 024 octets ;
- 1 Mo ou 1 MB = 1 000 000 octets ;
- 1 Mio ou 1 MiB = 1 048 576 octets ;
- 1 Go ou 1 GB = 1 000 000 000 octets ;
- 1 Gio ou 1 GiB = 1 073 741 824 octets ;
- 1 To ou 1 TB = 1 000 000 000 000 octets ;
- 1 Tio ou 1 TiB = 1 099 511 627 776 octets.
Miracle : deux grandeurs différentes disposent désormais de deux noms différents.
Après plusieurs décennies de recherche, l’humanité venait de redécouvrir le concept d’étiquette.
Et les systèmes d’exploitation ?
C’est ici que les choses redeviennent inutilement amusantes.
Les préfixes binaires sont normalisés depuis longtemps, mais leur adoption dans les interfaces reste très inégale.
Windows, notamment, utilise traditionnellement des puissances de 1 024 pour calculer de nombreuses capacités tout en continuant à afficher des unités comme « Ko », « Mo », « Go » ou « To ».
Une valeur calculée en Gio peut donc être présentée à l’utilisateur comme des Go.
Le monde Unix et Linux n’est pas toujours beaucoup plus vertueux. Certains outils utilisent également des puissances de 1 024 tout en affichant simplement des suffixes comme K, M ou G, alors que d’autres options permettent de demander explicitement une représentation décimale.
Même lorsqu’on dispose d’unités parfaitement non ambiguës, certains logiciels préfèrent encore vous laisser deviner. Il faut bien préserver un peu de folklore informatique.
Le disque de 1 To qui n’a rien perdu du tout
C’est probablement l’exemple le plus célèbre de la confusion entre unités décimales et binaires.
Un fabricant vend un disque de 1 To.
Il fournit :
1 To = 1 000 000 000 000 octets.
Et il a parfaitement raison.
Ce n’est ni une astuce marketing, ni une capacité gonflée, ni un complot international organisé dans une cave par le cartel du disque dur.
Le préfixe téra signifie 1012. Un disque contenant 1 000 000 000 000 octets possède donc bien une capacité de 1 To.
Le problème apparaît lorsqu’un utilisateur s’attend, consciemment ou non, à recevoir une capacité exprimée en unités binaires.
Convertissons le même nombre d’octets en Gio :
1 000 000 000 000 ÷ 230 ≈ 931,32 Gio
Autrement dit, le même disque possède une capacité de :
- 1 000 Go en notation décimale ;
- environ 931,32 Gio en notation binaire.
Il n’y a aucune contradiction et aucun espace disparu : ce sont simplement deux unités différentes.
Le fabricant vous a vendu 1 To. Il ne vous a jamais promis 1 Tio.
La source du malentendu est surtout historique. Pendant des décennies, de nombreux utilisateurs ont appris qu’un « kilo-octet » faisait 1 024 octets, qu’un « mégaoctet » faisait 1 0242 octets et qu’un « gigaoctet » faisait 1 0243 octets.
Ils finissent donc naturellement par penser qu’un disque de 1 To devrait représenter 1 024 Gio.
Mais 1 To et 1 Tio ne désignent pas la même quantité.
| Unité | Nombre d’octets |
|---|---|
| 1 To | 1 000 000 000 000 |
| 1 Tio | 1 099 511 627 776 |
Un tébioctet contient donc environ 9,95 % d’octets de plus qu’un téraoctet.
Le fabricant n’a rien retiré. L’utilisateur attend simplement des unités binaires alors qu’il a acheté, très correctement, une capacité annoncée en unités décimales.
La confusion devient particulièrement savoureuse lorsqu’un système d’exploitation convertit ensuite la capacité en puissances de 1 024, obtient environ 931 Gio… mais écrit malgré tout « 931 Go ».
Le disque, lui, n’a toujours rien fait. Il assiste simplement au procès.
Les télécommunications : étonnamment, c’est plus propre
Dans les réseaux et les télécommunications, les débits sont normalement exprimés avec les préfixes décimaux du Système international.
- 1 Mbps = 1 000 000 bits par seconde ;
- 1 Gbps = 1 000 000 000 bits par seconde ;
- 10 Gbps = 10 000 000 000 bits par seconde.
Ethernet, la fibre optique, les accès Internet ou les réseaux mobiles utilisent donc généralement des puissances de 1 000 pour annoncer leurs débits.
Pourquoi cette relative discipline ? Entre autres parce qu’un débit est une grandeur de transmission normalisée et que, lorsqu’on vend une connexion estampillée « 1 Gbps », il est préférable que le milliard conserve son nombre habituel de zéros.
Bit et octet : la deuxième embuscade
Il reste toutefois une autre source de confusion particulièrement efficace : le bit n’est pas l’octet.
- le bit est représenté par un b minuscule ;
- le byte est représenté par un B majuscule ;
- en français, on utilise o pour « octet » ;
- 1 octet = 8 bits.
Ainsi, 100 Mbps ne signifie absolument pas 100 Mo/s.
Comme un octet contient 8 bits :
100 000 000 bits/s ÷ 8 = 12 500 000 octets/s
Une connexion à 100 Mbps correspond donc à un maximum théorique de :
- 12,5 Mo/s en notation décimale ;
- environ 11,92 Mio/s en notation binaire.
Et il s’agit bien d’un maximum théorique. Les protocoles réseau, les en-têtes, les contrôles, les performances du serveur, du stockage et diverses réalités désagréables de l’existence peuvent réduire le débit effectivement observé.
| Débit réseau | Maximum théorique |
|---|---|
| 100 Mbps | 12,5 Mo/s |
| 1 Gbps | 125 Mo/s |
| 2,5 Gbps | 312,5 Mo/s |
| 10 Gbps | 1,25 Go/s |
Conversions pratiques
Pour éviter de ressortir une calculatrice à chaque fois que quelqu’un prononce le mot « giga », voici le tableau essentiel :
| Décimal | Valeur | Binaire | Valeur |
|---|---|---|---|
| 1 ko / 1 kB | 1 000 octets | 1 Kio / 1 KiB | 1 024 octets |
| 1 Mo / 1 MB | 1 000 000 octets | 1 Mio / 1 MiB | 1 048 576 octets |
| 1 Go / 1 GB | 1 000 000 000 octets | 1 Gio / 1 GiB | 1 073 741 824 octets |
| 1 To / 1 TB | 1 000 000 000 000 octets | 1 Tio / 1 TiB | 1 099 511 627 776 octets |
Exemple concret
Vous avez un fichier de exactement 1 073 741 824 octets.
Cette taille représente :
- exactement 1 Gio / 1 GiB ;
- environ 1,074 Go / 1,074 GB en notation décimale.
Un logiciel utilisant explicitement la notation binaire pourra donc afficher « 1 Gio » ou « 1 GiB ».
Un autre logiciel pourra afficher approximativement « 1 Go » tout en ayant effectué son calcul avec une puissance de 1 024.
Et un troisième pourra afficher simplement « 1G », laissant à l’utilisateur le soin de terminer le travail de normalisation. Service premium.
Pourquoi être rigoureux, même si c’est pénible
On pourrait évidemment laisser courir. Continuer à écrire « Go » lorsqu’on veut dire « Gio », considérer que tout le monde comprend et consacrer notre énergie à des problèmes plus importants, comme déterminer pourquoi l’imprimante n’est de nouveau plus visible sur le réseau.
Mais la distinction a plusieurs intérêts très concrets.
1. Pour enseigner quelque chose de cohérent
Comment expliquer correctement les unités à des étudiants si le même préfixe change de valeur selon le contexte ?
kilo = 1 000 et kibi = 1 024 est une règle simple.
« Kilo vaut normalement 1 000, sauf parfois en informatique, mais pas toujours, cela dépend du logiciel et de ce que son développeur avait décidé ce jour-là » ressemble davantage à une tradition orale qu’à un système de mesure.
2. Pour éviter les erreurs de calcul
La différence paraît modeste à l’échelle du kilo : 1 024 n’est que 2,4 % supérieur à 1 000.
Mais l’écart augmente avec les puissances :
| Comparaison | Écart approximatif |
|---|---|
| 1 Kio par rapport à 1 ko | 2,4 % |
| 1 Mio par rapport à 1 Mo | 4,86 % |
| 1 Gio par rapport à 1 Go | 7,37 % |
| 1 Tio par rapport à 1 To | 9,95 % |
Sur des calculs de stockage, de sauvegarde, de capacité ou de transfert, le détail finit donc par représenter plusieurs dizaines, centaines ou milliers de gigaoctets.
À ce stade, ce n’est plus vraiment un détail.
3. Pour comprendre ce que les fabricants annoncent réellement
Un disque vendu comme « 1 To » et contenant 1 000 000 000 000 octets respecte exactement la définition de l’unité.
Le fabricant ne vous doit pas 1 Tio : il vous a vendu 1 To.
L’impression de capacité manquante vient surtout du fait que de nombreux utilisateurs ont historiquement assimilé les préfixes kilo, méga, giga et téra aux puissances de 1 024.
Or :
- 1 To = 1 000 000 000 000 octets ;
- 1 Tio = 1 099 511 627 776 octets.
La différence est réelle, mais elle ne constitue pas une tromperie : les deux valeurs utilisent simplement des unités différentes.
Le problème n’est donc pas que le fabricant vous vole de l’espace. Le problème est que plusieurs décennies de terminologie approximative ont dressé une partie du public à attendre une unité qu’il n’a jamais achetée.
4. Pour documenter sans créer de devinettes
Dans une documentation technique, écrire simplement « 4 Go de mémoire » peut laisser subsister un doute.
Écrire :
4 Gio = 4 × 230 octets
ne laisse pratiquement aucune place à l’interprétation.
Les unités existent précisément pour éviter d’avoir à deviner ce que quelqu’un voulait dire. Les employer correctement n’est donc pas une obsession de métrologue enfermé dans une cave : c’est littéralement leur fonction.
La règle simple pour ne plus se tromper
- Pour les unités décimales : utilisez kilo, méga, giga et téra avec leurs puissances de 1 000.
- Pour les unités binaires : utilisez Kio, Mio, Gio et Tio — ou KiB, MiB, GiB et TiB dans la notation internationale.
- Pour les débits réseau : kbps, Mbps et Gbps utilisent normalement les préfixes décimaux.
- Ne confondez pas b et B : un octet ou byte vaut 8 bits.
- Dans une documentation technique : si le moindre doute subsiste, donnez directement la valeur exacte en octets.
Par exemple :
1 Gio = 1 GiB = 230 octets = 1 073 741 824 octets
Là, même le logiciel le plus créatif aura du mal à interpréter autre chose.
Conclusion : rendez kilo à ses 1 000
L’informatique n’a évidemment pas inventé les incohérences de notation. Elle a simplement réussi à en industrialiser une particulièrement tenace.
Pendant des décennies, par commodité, habitude et probablement un peu de flemme, on a utilisé les mots kilo, méga, giga et téra pour désigner tantôt des puissances de 1 000, tantôt des puissances de 1 024.
Résultat : certains utilisateurs pensent encore qu’un disque de 1 To devrait contenir 1 Tio, alors que le fabricant a parfaitement respecté la définition du téraoctet.
Nous disposons pourtant aujourd’hui d’un vocabulaire parfaitement capable d’éviter cette ambiguïté :
- 1 ko = 1 000 octets ;
- 1 Kio = 1 024 octets ;
- 1 Go = 1 000 000 000 octets ;
- 1 Gio = 1 073 741 824 octets ;
- 1 To = 1 000 000 000 000 octets ;
- 1 Tio = 1 099 511 627 776 octets.
Ce n’est pas du perfectionnisme. C’est simplement utiliser deux noms différents pour deux nombres différents, concept technologique certes audacieux, mais qui semble avoir fait ses preuves dans d’autres domaines.
Et si quelqu’un vous regarde bizarrement lorsque vous prononcez « gibioctet », rappelez-lui simplement qu’un kilogramme de boudin contient 1 000 grammes, pas 1 024.
Votre boucher, au moins, travaille encore dans un système cohérent.
