Convertir des Kio en Gio

Kio
9,53674316406e-7Gio

1 KiB = 9,53674316406e-7 GiB

Saisissez une valeur et la conversion de kibioctet en gibioctet suit pendant que vous tapez. Le facteur vaut exactement 9,53674316406e-7 : c’est ce que représente 1 Kio en Gio. 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 9,53674316406e-7 GiB — 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 gibioctet : exemples concrets

  • 512 Kio is 0,0004883 Gio

    — un demi-mébioctet.

  • 4 Kio is 0,000003815 Gio

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

  • 8389000 Kio is 8 Gio

    — la mémoire d’un portable de milieu de gamme.

  • 976200000 Kio is 931 Gio

    — ce que Windows affiche pour un disque d’un téraoctet.

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

kibioctet et gibioctet

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 gibioctet vaut 1 073 741 824 octets, environ 7 % de plus qu’un gigaoctet. Windows mesure en gibioctets tout en les étiquetant « Go », et c’est là tout le mystère de l’espace disque qui s’évapore.

Il faut 1 048 576 kibioctets pour faire un gibioctet

Dans ce sens, l'opération est une division, et par un nombre entier : 1 048 576 de ces unités entrent dans un gibioctet 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 GiB et 0 GiB — 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 GiB là où la boîte annonçait 0 GiB. 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.

Le noyau compte la mémoire en kibioctets et les étiquette ko

Toute valeur de /proc/meminfo est un compte d’unités de 1 024 octets imprimé sous une étiquette lisant ko, et il en va de même pour /proc/swaps, les fichiers meminfo par nœud sous /sys, et les sysctls de mémoire. L’étiquette précède le moment où le kibioctet a reçu un nom, et la changer maintenant casserait chaque script qui a jamais parsé le fichier, donc elle reste fausse et quiconque la lit programmatiquement sait l’ignorer, ce qui est l’arrangement que tout le monde regrette silencieusement.

La conséquence pour quiconque convertit à la main est une erreur de 2,4 pour cent à la première étape et de 7,4 pour cent au moment où elle atteint les gibioctets, dans la direction qui fait paraître la machine plus petite qu’elle n’est. Prendre MemTotal à 16 316 480 et diviser par un million donne 16,3 « Go » ; diviser par 1 048 576 donne 15,56 Gio, et c’est le second chiffre qui s’accordera avec ce que tous les autres outils de la machine rapportent, et c’est le chiffre qu’il faut écrire.

La mémoire est la seule quantité où le binaire n’est pas une convention

Sur un disque dur, le chiffre décimal est celui du fabricant et le chiffre binaire est celui du système d’exploitation, et aucun n’est plus correct que l’autre — ce sont deux façons de compter les mêmes octets. La mémoire n’est pas comme cela. Un réseau mémoire est sélectionné par des lignes d’adresse, n d’entre elles décodant 2^n emplacements, donc les capacités tombent sur des puissances de deux parce que n’importe quoi d’autre laisserait une partie de l’espace d’adressage ne rien décoder, et c’est la physique plutôt que la convention qui dicte la granularité.

Cela fait de 8 Gio la vraie taille d’un module de 8 Go : 8 589 934 592 octets, l’étiquette décimale étant l’approximation plutôt que la réalité. C’est la raison pour laquelle un chiffre de mémoire et un chiffre de stockage de la même taille nominale ne sont pas la même quantité d’octets, et la raison pour laquelle convertir un compte de mémoire en kibioctets en Gio donne un nombre rond alors que convertir un chiffre de disque ne le fait presque jamais.

MemTotal ne correspondra pas au chiffre sur le module

L’écart est réel et il est détaillé plutôt que mystérieux. Le micrologiciel réserve des régions sous 1 Mio et autour des tables ACPI ; le graphique intégré prend une part fixe qui peut aller jusqu’à un gibioctet sur un portable ; l’image du noyau, les tables de pages et la carte mémoire de la machine elle-même sont retirés du haut avant que MemTotal ne soit calculé. dmesg | grep -i memory montre les réservations au démarrage, et c’est l’endroit où chercher avant de conclure à un défaut.

Un portable de 16 Gio rapportant 15,56 Gio a donc perdu environ 450 Mio, soit 460 736 Kio, et il vaut la peine de convertir la différence plutôt que le total quand la question est « où est-ce qu’il est passé ». Un serveur avec de la mémoire à correction d’erreurs perd une part supplémentaire d’un huitième aux bits de contrôle, bien que cette part soit invisible pour le noyau et n’apparaisse jamais dans le chiffre en kibioctets, et c’est la limite de ce qu’une réconciliation peut atteindre sans aide externe.

Un million de kibioctets par gibioctet, et comment le faire de tête

Le ratio est 1 048 576, ce qui est suffisamment proche d’un million pour que laisser tomber six chiffres donne une estimation à cinq pour cent près. Un MemTotal de 32 633 240 Kio se lit comme « environ 32,6 », et le vrai chiffre est 31,12 Gio — bas d’environ les mêmes 4,6 pour cent à chaque fois, donc la correction est fixe plutôt que quelque chose à recalculer, et c’est l’astuce qui rend le calcul mental utilisable à cette échelle.

Pour un chiffre qui doit être exact, comptez les virgules plutôt que les zéros. Des kibioctets vers les mébioctets, c’est trois crans en arrière et une petite correction ; des mébioctets vers les gibioctets, la même chose encore. Le faire en deux étapes de dix bits est plus facile à vérifier qu’une étape de vingt bits, et cela met le chiffre en mébioctets devant vous, ce qui est l’unité que la plupart des paramètres de conteneur et de JVM veulent de toute façon, et c’est l’unité avec laquelle la suite du travail se fera.

Les huge pages transforment un pool de Kio en nombre de Gio maladroit

Les pages de mémoire ordinaires font 4 Kio sur x86-64 et les huge pages font 2 Mio, rapportées par le noyau comme Hugepagesize: 2048 ko. Un pool déclaré comme 2 048 huge pages fait 4 194 304 Kio, ce qui fait exactement 4 Gio — l’arithmétique reste propre parce que toute quantité impliquée est une puissance de deux, et c’est la raison pour laquelle les huge pages sont dimensionnées de cette façon et pas autrement.

Cela cesse d’être propre quand quelqu’un fixe le pool à partir d’un pourcentage. Réserver « environ un tiers » d’une machine de 62 Gio donne 10 600 pages, ou 21 708 800 Kio, ou 20,7 Gio, et le chiffre maladroit en gibioctets est l’indice que le nombre vient d’un pourcentage plutôt que d’une charge de travail. Les bases de données et les machines virtuelles qui veulent des huge pages veulent généralement un chiffre précis, et il est plus facile de l’énoncer en Gio et de convertir vers le bas, parce que le Gio est l’unité qu’un humain retient et le Kio celle qu’un paramètre veut.

Le swap et les sysctls qui restent en kibioctets

/proc/swaps rapporte sa colonne Size en blocs de 1 024 octets, donc un fichier de swap de 8 388 604 blocs fait 8 Gio moins quatre blocs — les quatre kibioctets manquants sont l’en-tête que la zone de swap écrit au début. swapon --show imprime la forme lisible et cache le détail, ce qui est bien pour lire et trompeur si vous essayez de comprendre pourquoi le fichier que vous avez créé revient à quatre kibioctets de moins que prévu, et c’est le piège que la lecture directe de /proc/swaps évite.

Les boutons de réglage restent aussi en kibioctets. vm.min_free_kbytes fixe la réserve dans laquelle l’allocateur ne descendra pas, couramment autour de 67 584 sur un poste de travail, ce qui fait 66 Mio ou 0,06 Gio — une quantité suffisamment petite pour que le chiffre en gibioctets soit inutile et que celui en kibioctets soit la bonne unité pour penser. Convertissez pour vérifier l’ordre de grandeur, puis laissez le champ tel qu’il était, parce que la valeur a été choisie en kibioctets et toute autre unité l’éloigne de ce qui a été mesuré.

Une machine, deux conventions, et laquelle s’applique où

Le même ordinateur rapporte sa mémoire en unités binaires étiquetées décimalement et son stockage en unités décimales réétiquetées binairement, et les deux habitudes se rejoignent au milieu sans avertissement. Une machine décrite comme 16 Go de RAM et 512 Go de SSD détient 17,18 milliards d’octets de mémoire et 512 milliards d’octets de disque, et le disque apparaîtra comme 476,8 Gio tandis que la mémoire apparaîtra comme très près de 16, et l’écart entre les deux est ce qui rend toute généralisation imprudente.

La règle pratique est de savoir qui a fait l’étiquetage. Là où un fabricant a choisi le chiffre — disques, stockage de téléphone, vitesses réseau — c’est décimal et le chiffre binaire semblera court. Là où le matériel l’a choisi — modules de mémoire, tailles de page, lignes de cache, espaces d’adressage — c’est binaire et le chiffre décimal est l’arrondi. Un compte en kibioctets provenant du noyau est toujours du second type, et c’est la première chose à fixer avant de comparer quoi que ce soit d’autre.

Convertir des Kio en Gio : questions fréquentes

Combien font 1 Kio en Gio ?

1 Kio vaut 9,53674316406e-7 Gio. La valeur est exacte et non arrondie : la correspondance de kibioctet en gibioctet 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 : gibioctet en kibioctet

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