Convertisseur de tailles de données

Convertit une taille en unités décimales et binaires — KB face à KiB, MB face à MiB — avec les bits, le nombre exact d’octets et ce qu’affiche chaque OS.

Octets exacts
1,000,000,000,000
Décimal
Puissances de 1000 — SI, fabricants de disques, macOS
  • B1,000,000,000,000
  • KB1,000,000,000
  • MB1,000,000
  • GB1,000
  • TB1
Binaire
Puissances de 1024 — CEI, Windows, RAM
  • KiB976,562,500
  • MiB953,674.3164
  • GiB931.3226
Bits
Puissances de 1000 — les débits réseau sont toujours décimaux
  • bit8,000,000,000,000
  • Kb8,000,000,000
  • Mb8,000,000
  • Gb8,000
  • Tb8
Ce qu’afficheront vos outils

Les mêmes octets, cinq lectures. Aucune n’a tort ; elles divergent sur le diviseur, sur l’étiquette, ou sur les deux.

  • Explorateur Windows — divise par 1024 et garde les étiquettes décimales931 GB
  • Finder de macOS — divise par 10001 TB
  • ls -lh, du -h — divisent par 1024932G
  • ls --si, du --si — divisent par 10001.0T
  • Fabricants de disques et de clés USB — divisent par 10001 TB

Ce que fait cet outil

Saisissez une taille dans n’importe quelle unité — 1 To, 1536 MiB, 900 Mb, ou simplement un nombre d’octets brut copié d’une liste de fichiers — et elle revient convertie dans les deux systèmes d’unités à la fois, accompagnée du nombre exact d’octets et de la manière dont chacun des outils de votre machine l’affichera.

Les deux systèmes sont montrés côte à côte plutôt que derrière un commutateur, car toute la difficulté des tailles de données tient à ce que les deux sont en usage et que les deux portent le même nom. Un nombre seul ne vous dit pas lequel l’a produit.

Pourquoi un kilo-octet a deux sens

Les ordinateurs adressent la mémoire en puissances de deux, si bien que 1024 est pour une machine un nombre rond naturel comme 1000 ne le sera jamais. Très tôt, « kilo » a été emprunté pour 1024 parce qu’il était assez proche du millier du SI et que personne n’imaginait que les deux s’écarteraient. Ils se sont écartés.

L’écart est faible en bas de l’échelle et s’accumule à chaque étage. Un kilo-octet diffère de 2,4 %, un méga-octet de 4,9 %, un giga-octet de 7,4 %, un téra-octet de 10 %. Au péta-octet les deux réponses sont éloignées de 12,6 %, et ce n’est plus un détail d’arrondi :

KB    1,000                 KiB    1,024                 # 2,4 % d’écart
MB    1,000,000             MiB    1,048,576             # 4,9 %
GB    1,000,000,000         GiB    1,073,741,824         # 7,4 %
TB    1,000,000,000,000     TiB    1,099,511,627,776     # 10,0 %

En 1998, la CEI a donné aux puissances de 1024 leurs propres noms — kibioctet, mébioctet, gibioctet, et les symboles KiB, MiB, GiB — précisément pour que l’ambiguïté puisse être écrite puis écartée. Les noms n’ont jamais pris dans l’usage courant, mais les symboles si, et tout ce qui porte l’étiquette KiB est sans ambiguïté. Tout ce qui porte KB ne l’est toujours pas.

Qui compte de quelle façon

Le partage n’a rien d’aléatoire. Il suit à peu près la ligne entre le matériel qu’on adresse et le matériel qu’on vend :

  • La mémoire vive est toujours binaire. Un module de 16 Go fait 16 Gio, parce que la mémoire s’adresse par lignes et colonnes binaires et ne pourrait pas être un nombre décimal rond même en essayant.
  • Les disques sont toujours décimaux. Un fabricant qui vend un disque de 1 To entend 1 000 000 000 000 d’octets, et cela bien avant que quiconque s’en plaigne.
  • Windows est binaire mais emploie les étiquettes décimales. Il divise par 1024 et écrit Go, et c’est de là que vient l’essentiel de la confusion réellement vécue.
  • macOS est décimal depuis Snow Leopard en 2009. Le même disque qui affiche 931 Go sous Windows affiche 1 To sur un Mac, et aucune des deux machines n’est en panne.
  • Les outils en ligne de commande de Linux donnent les deux : ls -lh et du -h divisent par 1024, et l’option --si sur ces mêmes commandes divise par 1000.
  • Les réseaux sont toujours décimaux, et ils comptent des bits et non des octets.

Le disque de 1 To qui s’affiche en 931 Go

C’est de loin la question la plus posée sur les tailles de données, et la réponse est qu’aucun espace ne manque. Le disque contient exactement ce qu’annonçait la boîte. Simplement, Windows divise ces octets par 1024 trois fois au lieu de 1000, puis imprime une étiquette qui dit autre chose.

1,000,000,000,000 bytes         # ce que le fabricant a vendu
/ 1024 = 976,562,500 KB         # Windows divise une fois
/ 1024 = 953,674.32 MB          # deux fois
/ 1024 = 931.32 GB              # trois fois, puis étiquette Go

Le disque n’est pas plus petit qu’annoncé et le système ne ment pas sur le nombre d’octets. La seule chose fausse est l’étiquette : ce que Windows appelle 931 Go, c’est en réalité 931 Gio, et 931 Gio font 1 To. Collez n’importe quelle taille dans cet outil et les deux colonnes montrent ce rapport directement.

Bits et octets, et le facteur huit

Un octet vaut huit bits, et les deux ne se distinguent à l’écrit que par la casse d’une lettre : un B majuscule désigne les octets, un b minuscule les bits. Mb et MB diffèrent d’un facteur huit, largement de quoi rendre un calcul absurde.

Cela compte surtout pour les débits réseau, qui se citent en bits par seconde tandis que les tailles de fichiers et la progression des téléchargements se comptent en octets. Une connexion à 100 Mb/s transporte au mieux 12,5 Mo/s, donc un fichier de 1 Go met environ 80 secondes et non les 10 que les chiffres semblent promettre. Rien ne vous bride ; les unités n’ont jamais été les mêmes.

Les bits ne sont montrés ici que dans le système décimal, et ce n’est pas une simplification. Les débits réseau se définissent en puissances de dix, si bien qu’un mégabit vaut un million de bits partout où le terme sert. La CEI définit bien des unités binaires de bits, mais quasiment rien ne les emploie, et les proposer inviterait à une conversion que personne ne vise.

Pourquoi les nombres présentés ici sont exacts

Les nombres JavaScript ne conservent les entiers exactement que jusqu’à environ neuf millions de milliards — 2^53. Un exaoctet vaut 10^18, bien au-delà, si bien qu’un convertisseur bâti sur l’arithmétique ordinaire commence à perdre des chiffres précisément là où vivent les questions de grand stockage, et annonce un nombre d’octets faux avec assurance sur ses dernières décimales.

Ici tout emploie des entiers de précision arbitraire à la place. Cela apporte en prime quelque chose de moins évident : comme tous les facteurs en jeu sont des puissances de dix ou de deux, et que les deux divisent exactement une certaine puissance de dix, chaque conversion entre ces unités se termine en décimal fini. 1 To ne vaut pas environ 931,32 Gio — il vaut 931,322574615478515625 Gio, sans reste. Les lignes présentées ici sont arrondies pour la lecture, et le nombre d’octets au-dessus est la réponse entière.

Questions fréquentes

Un kilo-octet fait-il 1000 ou 1024 octets ?
Les deux, selon qui compte. Le SI et les fabricants de disques emploient 1000 ; Windows et les tailles de mémoire vive emploient 1024. La CEI nomme les unités de 1024 à part — kibioctet, mébioctet, gibioctet — ce qui lève l’ambiguïté, même si les anciennes étiquettes restent partout. Cet outil montre les deux lectures à la fois plutôt que d’en choisir une.
Pourquoi mon disque de 1 To n’affiche-t-il que 931 Go ?
Rien ne manque. Le fabricant vous a vendu 1 000 000 000 000 d’octets, comptés en puissances de 1000. Windows divise cela trois fois par 1024, obtient 931,32, puis étiquette le résultat Go. Mêmes octets, autre diviseur, étiquette trompeuse : ce qu’il vous montre, ce sont en réalité 931 Gio.
Quelle est la différence entre Mo et Mio ?
Un méga-octet vaut 1 000 000 d’octets et un mébioctet 1 048 576 octets, donc le Mio est plus grand d’environ 4,9 %. Le Mio est sans ambiguïté par définition ; le Mo ne l’est que si vous savez quelle convention suit l’outil qui l’a imprimé.
Pourquoi mon téléchargement est-il plus lent que mon débit ?
Le plus souvent parce que les deux se mesurent dans des unités différentes. Les débits se citent en mégabits par seconde et les téléchargements en méga-octets par seconde, et il y a huit bits dans un octet. Une ligne à 100 Mb/s plafonne autour de 12,5 Mo/s.
Que veut vraiment dire une limite d’envoi ou d’hébergement de 25 Mo ?
Cela dépend du service, et l’hypothèse prudente est le plus petit nombre. Si la limite est appliquée comme 25 × 1 000 000 d’octets, un fichier juste en dessous de 25 Mio sera refusé. Convertir la taille de votre fichier dans les deux colonnes montre immédiatement s’il passe les deux lectures.
L’outil gère-t-il de très grandes tailles ?
Oui. L’arithmétique emploie des entiers de précision arbitraire, si bien que exaoctets, zettaoctets et yottaoctets se convertissent exactement au lieu de perdre leurs derniers chiffres comme le font les nombres à virgule flottante au-delà de 2^53.
Ce que je saisis est-il envoyé à un serveur ?
Non. C’est de l’arithmétique dans votre navigateur ; rien n’est téléversé ni journalisé, et cela fonctionne sans connexion réseau.