Convertir des Kio en Mio

Kio
0,0009765625Mio

1 KiB = 0,0009765625 MiB

Saisissez une valeur et la conversion de kibioctet en mébioctet suit pendant que vous tapez. Le facteur vaut exactement 0,0009765625 : c’est ce que représente 1 Kio en Mio. Le calcul se fait sur votre propre appareil ; une fois la page chargée, elle n’interroge plus aucun serveur.

  • Où cela s’exécute Dans votre navigateur. Ce que vous saisissez n’entre dans aucune requête.
  • Exact par définition 1 KiB vaut exactement 0,0009765625 MiB — fixé, pas arrondi.
  • Répond pendant que vous tapez Sans bouton et sans attente. La réponse calculée est dans la page avant qu’aucun script ne s’exécute.

kibioctet en mébioctet : exemples concrets

  • 512 Kio is 0,5 Mio

    — un demi-mébioctet.

  • 4 Kio is 0,003906 Mio

    — une page de mémoire sur la plupart des systèmes.

  • 716800 Kio is 700 Mio

    — un CD audio, d’où vient le chiffre.

  • 8192 Kio is 8 Mio

    — un bloc de mémoire tel qu’un programme en réserve.

kibioctet en mébioctet en un coup d’œil

Chaque nombre de ce tableau est calculé à partir de la définition qui donne la réponse ci-dessus : le tableau ne peut donc pas s’en écarter.
KioMio
100,009765625
200,01953125
500,048828125
1000,09765625
5000,48828125
10000,9765625
50004,8828125
100009,765625

kibioctet et mébioctet

Un kibioctet vaut exactement 1 024 octets. Le nom a été introduit en 1998 pour que « kilooctet » puisse de nouveau valoir 1 000 — l’habitude n’a jamais tout à fait cédé.

Un mébioctet vaut 1 024 kibioctets, soit 1 048 576 octets. Les outils Linux et les chiffres de mémoire désignent presque toujours cela, même quand ils écrivent « Mo ».

Il faut 1 024 kibioctets pour faire un mébioctet

Dans ce sens, l'opération est une division, et par un nombre entier : 1 024 de ces unités entrent dans un mébioctet sans reste. Le seul inconvénient, c'est que les résultats tombent en fractions — un tiers, un douzième — au lieu des chiffres ronds que donne le sens inverse.

Rien ne se perd pour autant : la division est exacte. Si votre résultat refuse de tenir en place en décimal — 0,0833… et compagnie —, c'est la fraction qui transparaît, pas une erreur qui s'installe.

KiB est l'unité binaire

Un KiB vaut 1 024 fois l'unité du dessous ; un kB, 1 000. Sur cette page, c'est l'écart entre 0,001 MiB et 0,001 MiB — 2,4 % — et il grandit à chaque palier : négligeable sur une photo, visible sur un disque dur.

Le mystère de l'espace disque manquant tient tout entier là-dedans, et sur cette page il vaut 2,4 %. Un disque vendu en kB contient exactement ce qui est annoncé ; Windows divise ensuite par 1 024 au lieu de 1 000, garde le nom décimal, et affiche 0,001 MiB là où la boîte annonçait 0,001 MiB. macOS compte ces tailles en unités décimales depuis 10.6, d'où le même disque qui paraît de deux tailles sur deux machines — rien n'a disparu et personne n'arrondit : les mêmes octets portent deux noms.

Un compte en KiB est presque toujours un compte de blocs

La commande qui a produit le nombre compte plus que l'arithmétique qui suit. Le du de GNU compte en blocs de 1 024 octets par défaut, donc du -sk build/ répond à la question de l'espace que le système de fichiers réserve, pas à celle du volume de données réellement présentes. ls -l affiche le second en octets, et les deux chiffres diffèrent couramment d'un facteur plusieurs pour un même répertoire.

Cela compte dès que le chiffre en Mio entre dans une décision. Dimensionner une archive, une couche d'image de conteneur ou un quota de téléversement est une question de contenu et demande la taille apparente ; dimensionner une partition ou chercher pourquoi un volume s'est rempli est une question d'allocation et demande ce qu'affiche du. Convertir le mauvais en Mio donne une réponse arithmétiquement parfaite et portant sur la mauvaise quantité. stat tranche pour un fichier : la ligne Size est la longueur en octets, la ligne Blocks est l'allocation comptée en blocs de 512 octets quel que soit le système de fichiers, et diviser la seconde par deux donne des kibioctets. Là où les deux divergent de plus d'un bloc, le fichier est creux ou le système de fichiers le comprime.

Kibi et mebi, des préfixes inventés en 1998 pour clore un vieux débat

Les préfixes sont des contractions : kilobinary devient kibi, megabinary devient mebi, gigabinary devient gibi. La CEI les a adoptés en 1998 comme amendement à la norme IEC 60027-2, l'IEEE les a repris dans IEEE 1541 en 2002, et ils figurent aujourd'hui dans ISO/IEC 80000-13. L'idée était que « kilooctet » puisse redevenir mille octets dans tous les contextes, avec la valeur binaire portant un nom propre.

L'adoption est allée dans un sens et s'est arrêtée. Les outils Linux et BSD, la plupart des normes, plusieurs hyperviseurs et Kubernetes utilisent les préfixes IEC ; le marketing du stockage, Windows, les tailles visibles de macOS et la documentation de la plupart des langages de programmation ne l'ont pas fait. C'est ce clivage qui explique qu'un chiffre en kibioctets sur votre écran sort presque toujours d'un outil Unix, et que la même quantité ailleurs aurait été étiquetée Ko sans moyen de savoir laquelle des deux était visée.

Les outils GNU impriment un K majuscule et entendent 1 024

du -h, ls -lh, df -h et free -h utilisent par défaut des puissances de deux et impriment un suffixe d'une seule lettre — K, M, G — sans aucun i. L'option --si fait passer ces mêmes outils aux puissances de dix et imprime un k minuscule. La casse de cette seule lettre est tout le signal, et elle est invisible dans une capture d'écran collée dans un ticket.

Une sortie qui affiche 3.5M correspond donc à 3,5 Mio, soit 3 670 016 octets, et donner ce chiffre à un système qui suppose des mégaoctets vous laisse 4,9 pour cent en dessous. Quand le chiffre doit être cité plutôt qu'utilisé, du -B1 ou ls -l donnent les octets bruts et lèvent l'ambiguïté : c'est moins lisible et impossible à mal interpréter. ls -l --block-size=K et du --block-size=K annoncent l'unité à voix haute dans la sortie, ce qui vaut les quelques frappes en plus pour tout ce qui sera collé dans un ticket ou un runbook plutôt que lu une fois et oublié.

Dix mille petits fichiers et le total en KiB qui ne descend pas

Les systèmes de fichiers distribuent l'espace par blocs. La taille de bloc par défaut est de 4 Kio sur ext4, XFS et NTFS, ce qui correspond par coïncidence à la taille d'une page mémoire sur x86-64. Un fichier de 200 octets occupe un bloc ; il en va de même pour un fichier de 4 096 octets ; un fichier de 4 097 en occupe deux. Le reste inutilisé s'appelle le slack, et il est invisible tant qu'on ne convertit pas un total de répertoire en Mio, où il ressort en plusieurs fois ce qui était attendu.

L'arithmétique mérite d'être faite une fois. Dix mille fichiers d'en moyenne 200 octets contiennent environ 2 Mio de données et occupent 40 960 Kio — 40 Mio — d'espace disque. du --apparent-size -sk donne la taille de contenu et du -sk la taille allouée, et un arbre node_modules ou une boîte Maildir fait apparaître l'écart à son maximum.

La division par 1 024 est exacte, ce qui est plus rare qu'il n'y paraît

Un kibioctet est 2¹⁰ octets et un mébioctet est 2²⁰, donc passer de l'un à l'autre est un décalage de dix bits. Toute valeur en KiB se convertit en Mio avec un décimal qui se termine — 1 KiB vaut 0,000 976 562 5 Mio, écrit en entier sans arrondi ni partie récurrente —, parce que 1 024 n'a pas d'autre facteur premier que deux, et les fractions décimales se terminent exactement pour ces dénominateurs-là.

C'est le seul coin de la conversion d'unités où un résultat en virgule flottante peut être pris sans réserve. Tout compte en KiB inférieur à 2⁴³ se divise par 1 024 en flottant double précision sans perdre aucun bit, puisque le numérateur et le diviseur sont des puissances de deux et que l'exposant absorbe le décalage. Convertir des kilogrammes en livres ne peut pas en dire autant ; la conversion ici, si.

Lire du -sk à côté de du -sh pour le même répertoire

du -sk retourne un entier de kibioctets et du -sh une chaîne lisible et arrondie. La forme arrondie est faite pour être lue, l'entier pour faire des calculs, et les mélanger explique pourquoi un tableur de capacité finit à plusieurs pour cent de la réalité sans qu'aucune ligne ne soit évidemment fausse. La sortie arrondie porte au mieux trois chiffres significatifs, de sorte que 1.1G a déjà jeté tout ce qui se trouvait sous environ 50 Mio.

L'habitude pratique consiste à accumuler en KiB et à formater à la fin. du -sk | sort -n trie correctement ; du -sh | sort -h a besoin du drapeau -h aussi sur sort et se trompe silencieusement sans lui, parce que le tri lexicologique met 1.1G au-dessus de 9.9M. Convertir en Mio quand un humain lira le chiffre, pas avant.

Les champs qui veulent des kibioctets et qu'il vaut mieux ne pas convertir

Plusieurs endroits d'un système Linux sont comptés en KiB par définition, et un chiffre en Mio doit être remis dans l'autre sens avant d'y entrer. ulimit -s est une limite de pile en kibioctets, souvent 8 192. Les quotas disque sont fixés et reportés en blocs de 1 Kio. L'option size= d'un montage tmpfs est le piège du lot : la documentation du noyau dit qu'un nombre nu est en octets, donc size=65536 donne 64 Kio et non les 64 Mio que quelqu'un comptant en kibioctets attendait — ajouter k, m ou g dit ce qu'on veut. La quasi-totalité des champs de /proc/meminfo sont en kibioctets sous une étiquette kB, à l'exception des lignes HugePages_, qui sont des nombres de pages sans unité.

Là où la destination est l'un de ceux-là, le sens utile est l'inverse, et la conversion ici sert à lire plutôt qu'à configurer. Calculer le chiffre en Mio pour vérifier que 8 192 fait huit mébioctets et non huit mégaoctets, puis remettre le nombre en kibioctets dans le champ sans modification.

Convertir des Kio en Mio : questions fréquentes

Combien font 1 Kio en Mio ?

1 Kio vaut 0,0009765625 Mio. La valeur est exacte et non arrondie : la correspondance de kibioctet en mébioctet est fixée par définition.

Ce que je saisis est-il envoyé quelque part ?

Non. Le calcul se fait dans votre navigateur. Vous pouvez couper la connexion et continuer à calculer — c’est d’ailleurs la façon la plus simple de le vérifier.

Pourquoi mon disque affiche-t-il moins que ce qui est annoncé ?

Parce que deux unités différentes portent le même nom. Les fabricants comptent 1 Go = 1 000 000 000 octets ; Windows affiche des gibioctets, soit 1 073 741 824 octets, tout en les appelant « Go ». Le même disque paraît ainsi environ sept pour cent plus petit. Rien n’a disparu.

Dans l’autre sens : mébioctet en kibioctet

Un Mio vaut 1024 Kio. C’est le même rapport lu à l’envers : un résultat obtenu sur une page et repassé par l’autre doit revenir à son point de départ.

D’où viennent ces chiffres

Ce que cette page affirme sur unités d’information se vérifie : voici les documents qui le fixent.

Comment cette page fonctionne

Le facteur figure dans la page sous forme de constante, et le calcul tient en quatre opérations. Rien n’est donc envoyé et rien n’est attendu : ce que vous saisissez ne quitte jamais le navigateur, faute de requête dans laquelle voyager.