Convertir des o en Mio

o
9,53674316406e-7Mio

1 B = 9,53674316406e-7 MiB

Saisissez une valeur et la conversion de octet en mébioctet suit pendant que vous tapez. Le facteur vaut exactement 9,53674316406e-7 : c’est ce que représente 1 o 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 B vaut exactement 9,53674316406e-7 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.

octet en mébioctet : exemples concrets

  • 5000000 o is 4,768 Mio

    — une photo prise au téléphone.

  • 1024 o is 0,0009766 Mio

    — un kibioctet, là où commence la confusion.

  • 734000000 o is 700 Mio

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

  • 8389000 o is 8 Mio

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

octet 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.
oMio
100000,00953674316406
200000,0190734863281
500000,0476837158203
1000000,0953674316406
5000000,476837158203
10000000,953674316406
50000004,76837158203
100000009,53674316406

octet et mébioctet

Un octet vaut huit bits — c’est d’ailleurs ce que le mot dit, là où l’anglais *byte* ne dit rien de la taille. Elle n’a pas toujours été fixée : les premiers ordinateurs employaient six, sept ou neuf bits. Huit s’est imposé parce qu’un caractère y tient et que le nombre se coupe proprement en deux.

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 048 576 octets pour faire un mébioctet

Dans ce sens, l'opération est une division, et par un nombre entier : 1 048 576 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.

MiB est l'unité binaire

Un MiB vaut 1 024 fois l'unité du dessous ; un MB, 1 000. Sur cette page, c'est l'écart entre 1048576 B et 1000000 B — 4,9 % — 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 4,9 %. Un disque vendu en MB contient exactement ce qui est annoncé ; Windows divise ensuite par 1 024 au lieu de 1 000, garde le nom décimal, et affiche 1000000 B là où la boîte annonçait 1048576 B. 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.

D’un compteur exact vers un champ qui attend des MiB

Le compteur d’octets est le chiffre fiable de l’échange. Il sort d’un appel système ou d’un en-tête de longueur, il n’a pas d’ambiguïté d’unité, et c’est ce que le logiciel finira par comparer. La figure en MiB est une commodité humaine empilée par-dessus, et chaque problème dans cette direction vient du fait de traiter la commodité comme la source de vérité et de laisser le nombre exact être reconstruit à partir d’elle.

Faites donc la conversion dans l’ordre qui garde le compteur d’octets comme référence : divisez par 1 048 576, décidez dans quel sens arrondir, puis remultipliez pour vérifier que la limite que vous venez d’écrire admet toujours le fichier que vous avez mesuré. Cette dernière étape prend quelques secondes et attrape toute la classe d’erreurs pour laquelle cette page existe, parce qu’une limite n’est correcte que quand le fichier la franchit, et ne se prouve pas en regardant l’air qu’elle a.

Arrondir un compteur vers une limite sans la casser

Un fichier de 10 486 000 octets fait 10,0002 Mio. Écrit dans une borne d’upload sous la forme « 10m », il est désormais plus gros que la limite et sera refusé, et le message d’erreur dira que le fichier dépasse une limite que l’opérateur croyait être exactement sa taille. Arrondir vers le bas est le réflexe par défaut, et pour une borne haute c’est toujours le mauvais — la borne doit au moins admettre la plus grande chose qu’elle est censée laisser passer.

Le cas miroir est une réservation plutôt qu’une borne. L’espace mis de côté pour un cache, un tampon de journal ou un fichier préalloué doit être arrondi vers le bas, parce qu’arrondir vers le haut promet une capacité qui n’y est pas et que le manque apparaît plus tard, sous charge, sous la forme d’un échec d’écriture. Une seule question tranche le sens à chaque fois : si ce chiffre est faux d’un octet, préférez-vous en avoir un peu trop ou un peu moins ?

Les suffixes qui ont l’air décimaux et ne le sont pas

Une grande partie de la configuration accepte un suffixe, et le suffixe dit rarement à quel système il appartient. nginx lit k comme 1 024 et m comme 1 048 576, donc client_max_body_size 10m fait 10 485 760 octets. La JVM fait la même chose avec -Xmx et -Xms. GNU dd tranche explicitement : bs=1M est 1 048 576 alors que bs=1MB est 1 000 000, et les deux produisent des fichiers différents depuis la même commande.

Kubernetes est celui dont il y a quelque chose à apprendre, parce qu’il refuse de deviner. Mi, Gi et Ti sont les grandeurs binaires et M, G et T sont les grandeurs décimales, les deux sont valides dans un manifest, et une limite mémoire de 512M est 4,6 % plus petite qu’une de 512Mi. Rien ne vous prévient : le manifest s’applique, le pod démarre, et la limite n’est pas à l’endroit prévu.

Les puissances de deux, et pourquoi 1 048 576 est un chiffre propre

Un mebioctet est 2 à la vingtième, et c’est pourquoi il revient comme taille naturelle pour ce qu’alloue un noyau. Les pages font 4 Kio, les pages géantes font couramment 2 Mio, et un tampon dimensionné à une puissance de deux s’aligne sur tout cela sans laisser de reste à la fin. Choisir 1 000 000 d’octets pour le même tampon n’est pas faux, c’est un chiffre que l’allocateur en dessous doit de toute façon arrondir, donc l’alignement se rachète à un niveau inférieur ou se paie en page partielle.

La conséquence pratique est que les valeurs dimensionnées en binaire se propagent. Si votre taille de bloc est une puissance de deux, et votre taille de partie un multiple de votre taille de bloc, et votre limite un multiple de votre taille de partie, tout se divise exactement et aucun étage ne finit sur une unité partielle. Introduire un chiffre décimal dans la chaîne fait que chaque étage en dessous commence à produire des restes, ce qui est une petite inefficacité et une grande source de confusions d’une-unité-de-décalage.

Stockage objet, téléversement en parties et arithmétique des parties

Téléverser un grand objet en parties, c’est là où ces chiffres cessent d’être cosmétiques. Une taille de partie choisie en binaire divise un fichier en un nombre entier de parties pleines plus un reste, et le nombre de parties est plafonné, donc la taille de partie doit être assez grande pour que l’objet tienne dans le plafond. Calculer cela à partir d’une figure en Mio arrondie plutôt qu’à partir du compteur exact, c’est comment un téléversement échoue à la partie 10 001 après en avoir transféré la plupart.

La vérification est arithmétique et vaut la peine d’être faite avant le transfert plutôt que pendant. Divisez la taille exacte de l’objet en octets par la taille de partie en octets, arrondissez vers le haut, et confirmez que le résultat reste dans la limite du fournisseur. Si la marge est trop serrée, augmentez la taille de partie plutôt que d’espérer ;l’échec arrive à la fin d’un long téléversement, et à ce moment-là l’information utile est un chiffre que vous auriez pu calculer à l’avance.

Là où un chiffre en Mio perd de l’information qu’il ne rattrape pas

Afficher 10,5 Mio est correct. Stocker 10,5 Mio et reconstruire plus tard le compteur d’octets ne l’est pas, parce que l’affichage a jeté tout ce qui se trouvait en dessous d’environ un millier d’octets et qu’il n’y a aucun moyen de le récupérer. Les manifests, les listings de sommes de contrôle et les journaux d’audit doivent porter le compteur d’octets et dériver la figure aimable au moment de l’affichage, dans cet ordre, pour que le nombre exact survive à chaque aller-retour dans un rapport.

La même règle s’applique aux comparaisons. Deux objets affichés en 4,2 Mio peuvent différer de cinquante mille octets, et une vérification de déduplication ou de dérive écrite contre la valeur affichée les déclarera identiques. Tout ce qui décide une égalité — synchronisation, vérification de sauvegarde, validation de cache — compare des compteurs d’octets, et la figure en Mio apparaît après pour celui qui lira le journal.

Un octet fait huit bits, et un champ de taille est en octets

L’erreur la plus coûteuse disponible sur cette page n’est pas l’écart de 4,9 % entre Mo et Mio, c’est le facteur huit entre octets et bits. Le stockage et les tailles de fichier se comptent en octets ;le débit se cite en bits par seconde, ce qui explique pourquoi une connexion à 100 Mb/s délivre au mieux 12,5 Mo par seconde et pourquoi un téléchargement d’un fichier de 500 Mio dessus prend environ quarante secondes plutôt que cinq.

La convention qui les distingue est un B majuscule pour les octets et un b minuscule pour les bits, et elle est suivie assez souvent pour qu’on s’y fie et assez souvent violée pour qu’on la vérifie. Quand un chiffre semble huit fois plus grand ou plus petit qu’il ne devrait, c’est la première chose à tester, avant toute question sur le millier que quelqu’un a voulu dire. Cela vaut la peine d’être vérifié sur n’importe quel chiffre recopié d’un diagramme réseau ou d’une fiche constructeur, où les bits sont l’unité maison et les octets l’exception.

Convertir des o en Mio : questions fréquentes

Combien font 1 o en Mio ?

1 o vaut 9,53674316406e-7 Mio. La valeur est exacte et non arrondie : la correspondance de octet 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 octet

Un Mio vaut 1048580 o. 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.