web-dev-qa-db-fra.com

Unités de taille des fichiers: "KiB" vs "KB" vs "kB"

Je travaille sur une application Web qui montrera la taille de certains fichiers, et je me demande s'il y a un consensus sur la façon de signaler les unités d'octets. Techniquement, le IEC a pesé avec une norme officielle , mais je ne suis pas sûr que cela vaille beaucoup.

Plusieurs options:

  • "1 Ko" signifie 1024 octets (comme Windows le rapporterait, usage traditionnel)
  • "1 ko" signifie 1000 octets (comme Mac OS le rapporterait, IEC)
  • "1 Kio" signifie 1024 octets (terminologie non ambiguë, mais peut-être inconnue)

Ce n'est pas énorme car nous ne parlons que d'une différence de 2,4% pour les fichiers de la plage de Ko, mais pour les Mo, la différence est de ~ 5% et pour les Go de ~ 8%.

66
Hank

Un certain nombre de problèmes entrent en ligne de compte dans la perception de ce qu'est un kilo-octet et comment le formuler.

Les IEC noms standard sont inutiles: Comme Jeff Atwood note il n'y a tout simplement pas d'industrie l'acceptation de KiB/MiB/GiB. Les fabricants de disques durs et les Mac sont les seuls acteurs majeurs utilisant la définition de 1000 octets et les fabricants de disques durs n'ont absolument aucune incitation à différencier KiB de KB; cela rend leurs disques plus petits. Les Mac et Windows n'ont aucune incitation d'utiliser KiB car c'est une complication inutile pour l'utilisateur. Notez que cela fait 12 ans que les définitions ont été créées, et elles ne seront pas adoptées de si tôt.

Windows vs Mac: Mac pense (les kilo-octets sont) différents. Si la détection du système d'exploitation est possible, affichez un kilo-octet comme le serait le système d'exploitation de l'utilisateur. Si vous ne le pouvez pas, la définition de 1024 octets est toujours une bonne solution de rechange, vu que 70% des utilisateurs généraux sont sous Windows . Bien sûr, votre marché cible peut être différent.

Échelle: Le problème avec le préfixe binaire vs le préfixe SI est que plus les nombres augmentent, plus la différence entre les valeurs augmente. Une fois que vous entrez dans la plage de gigaoctets, la différence entre Go et GiB est substantielle - de nombreux utilisateurs de Windows sont assez découragés de trouver que leur disque dur de 1 téraoctet n'est que de 932 gibibytes dans Windows. D'après mon expérience , la plupart d'entre eux supposent que Windows est correct plutôt que le fabricant du disque dur - et ils ont raison, il est dans l'intérêt du fabricant du disque dur d'utiliser la plus petite mesure possible pour un kilo-octet.

Les utilisateurs professionnels ou techniques sont un cas particulier . Si votre application mesure l'utilisation du disque ou de la base de données sur une batterie de serveurs, cette différence de 8% pour un Go est énorme, et vous devez autoriser l'utilisateur à spécifier la façon dont vous affichez les kilo-octets, même en incluant une option KiB. Ce sont probablement vos seuls utilisateurs qui se soucieraient suffisamment de se différencier.

Enfin, supposons que les gens pensent vraiment que 1 000 octets est un kilo-octet, dans leur cœur. Puisqu'ils connaissent la taille du fichier d'après ce que leur système d'exploitation rapporte, pas en comptant les octets manuellement , l'utilisation du nombre inhabituel de 1000 octets ajoutera une complexité inutile et votre application paraître incorrect car il entre en conflit avec ce que dit l'ordinateur. Les utilisateurs ne connaissent la taille d'un fichier que parce que leur système d'exploitation leur indique .

63
Ben Brocka

Un ancien (maintenant supprimé) question de débordement de pile couvrait exactement cela. Le consensus était:

  • 1 ko = 1000 octets
  • 1 Ko = 1024 octets

La source de ceci était le référence NIST sur les unités SI .

J'utiliserais le KiB plus techniquement correct. En d'autres termes, divisez le nombre d'octets par 1024 et montrez cela avec KiB comme unité. Je doute que ce soit important si les utilisateurs pensent à tort que "20 Ko" est 20 000 octets plutôt que 20 480.

17
DisgruntledGoat

Demandez à n'importe quel ami non technique combien d'octets sont dans un kilo-octet, et il répondra "1 000", car c'est ce que kilo - signifie dans tous les autres contextes auxquels il est habitué. 1 000 grammes par kilogramme, 1 000 mètres par kilomètre, etc. Ne trompez donc pas les utilisateurs en écrivant "k" lorsque vous voulez dire "1024".

Dans la plupart des cas, il n'y a aucune raison d'utiliser des multiples de 1024 de toute façon. Les utilisateurs ne sont pas des programmeurs, et les tailles de fichiers sont des nombres arbitraires sans aucun lien avec des puissances de 2. Il est beaucoup plus logique de suivre la norme SI et de décrire un fichier texte de 10 000 caractères ASCII text file as "10.0 Ko ", plutôt que" 9,7 Ko ". Il est beaucoup plus logique de décrire un disque dur de 160 041 885 696 octets comme" 160,0 Go "ou" 160 042 Mo ", plutôt que" 149,1 Go "à un endroit et" 152 628 Mo "à un autre. Comment Est-ce bénéfique pour tout le monde? C'est pourquoi OS X et Ubuntu mesurent des tailles de fichiers par multiples de 1000.

L'utilisation des unités de jargon du programmeur non standard déroute les utilisateurs lorsqu'ils ne peuvent pas graver 4,7 "Go" sur un DVD de 4,7 Go, ne peuvent pas contenir des fichiers de 100 × 10 "Mo" sur un lecteur flash de 1 Go, etc.

Dans le cas où des puissances de 2 sont réellement pertinentes (tailles de RAM), utilisez "KiB". C'est une norme internationale et toute personne qui ne la connaît pas peut la consulter facilement.

7
endolith

Pourquoi k doit être utilisé pour 1000 et Ki pour 1024.

Un réviseur que nous appellerons "Tests d'achat des utilisateurs" a analysé les disques de stockage externes. Tout au long de leur test, ils mentionnent que tous les lecteurs ont quelque "60 Go d'espace réservé et non disponible pour l'utilisateur" (1), valeurs exactes répertoriées dans un tableau par lecteur afin que les lecteurs puissent faire le meilleur achat.

Il s'avère que la différence alléguée est en fait de 1,024 ^ 3 × la taille du disque. C'est parce que ces testeurs ne connaissent pas la différence entre GiB avec lequel les partitions sont mesurées et Go avec lequel la taille du disque est mesurée. Ils ont sculpté cette stupidité pour que tout le monde puisse le voir dans une pierre appelée PDF .

Le KiB a été introduit non pas à cause d'un caprice mais parce que certaines quantités sont mesurées de cette façon et d'autres de la manière kB, et qu'il n'est pas commode de parler de "multiple de 1000 kilomètres par heure" et de "multiple de 1024 kilo-octets". Pour un autre exemple, les débits de communication (ce que beaucoup appellent à tort la vitesse) sont mesurés en kbps = 1000 bps (bits/sec) tandis que l'on parle de kBps = 1024 Bps (octets/sec) où il devrait être KiBps. On ne multiplie pas KiBps par seulement 8 pour obtenir des kbps.
La raison pour laquelle certaines personnes n'ont pas remarqué que les débits de communication kbps sont multiples de 1000 au lieu de 1024 est qu'ils utilisent k pour 1024 en informatique qui compte généralement par puissances de 2.

Donc, le KiB n'est pas une question de pédanterie ou quoi que ce soit, juste de savoir exactement de quoi on parle. Et je suis surpris de voir peu de mention de cette dualité dans cette discussion.

Le fait est en effet que l'on traite généralement du KiB et que, bien que cela me dispense de parler d '"unités de 1024 octets", il me semble un fardeau d'ajouter "i" à ce qui est le plus utilisé pour le bien de ce qui est utilisé. le moins. Mais comment un programme de formatage de disque pourrait-il afficher ses numéros sans faire la distinction GB/GiB? Ce qui est ennuyeux dans la confusion de la taille du disque, c'est que les fabricants de disques qui sont accusés de surestimer la taille des disques sont ceux qui utilisent correctement le multiplicateur d'unités international Giga en Go et que ce sont les autres à blâmer pour ne pas utiliser GiB. C'est en fait beaucoup plus facile que de passer au système métrique!

Ce que je remarque, c'est que l'utilisation de la distinction GB/GiB facilite déjà beaucoup leur écriture.

(1) ne se demandant même pas à quoi cet espace pourrait être utilisé; en fait, les fabricants de lecteurs sont si scrupuleux sur les tailles de disque (en Go ou en 1000000000 octets si vous préférez des phrases plus longues) que les secteurs de réserve utilisés pour conserver les données des secteurs réguliers défaillants sont en excédent du nombre d'octets exact.

7
Papou

Rendez-le personnalisable à partir d'un panneau de préférences. Peut-être utiliser KB comme 1024 comme paramètre par défaut. Comme l'a dit Ben Brocka, KiB est peu connu.

De plus, affichez la taille réelle dans les info-bulles, par ex.

Libellé abrégé: 42 Ko

Info-bulle: 43,212 octets

6
neoneye

1 ko est de 1000 octets ( décimal c'est-à-dire 10^3 est kilo)
1 Ko/Ko est de 1024 octets ( Binaire c'est à dire 2^10)
1 [~ # ~] b [~ # ~] = 8 bits

Pour résoudre cette confusion, 1024 octets sont appelés kibioctets (c.-à-d. Kilo-octet binaire) ou 1 Kio .

convertisseur d'unités Googleenter image description hereréférence

4
Premraj

Ce n'est pas compliqué. Énumérez les deux tailles sur mon ordinateur et affichez le nom complet dans Word au lieu d'utiliser des abréviations cryptiques. KB vs kB est facilement confondu pour la même chose. Cela n'a rien à voir avec les mathématiques, mais le langage. Ils ne parlent pas correctement. Si vous pouvez lister cm an in sur une règle, vous pouvez le faire sur un écran d'ordinateur. Si vous pouvez utiliser une règle combinée et la lire, vous pouvez lire les deux tailles répertoriées et utiliser la métrique vous choisissez.

Ne présumez pas les préférences de quelqu'un et choisissez pour lui. Ne les habituez pas à une métrique, puis changez-les d'appât une fois qu'ils comprennent cette métrique en échangeant constamment entre les deux.

0
Joseph Malone