Question Quelle est l'origine de K = 1024? [fermé]


Pourquoi existe-t-il une différence dans le nombre d’octets dans un kilo-octet? À certains endroits, j'ai vu le numéro 1024 (2dix) alors que dans d'autres, il est de 1000 (et la différence devient de plus en plus grande avec M, G, T, etc.).

Il ne s’agit pas d’une discussion sur la question de savoir si elle devrait être 1024 ou 1000 (bien que vous puissiez en discuter dans les commentaires), mais sur où et quand cette situation a pris naissance et / ou s’est généralisée.

Autant que je sache, les fabricants de Linux et de matériel n’utilisent jamais la variante 1024. Cela, et des ouï-dire, me font penser que MS-DOS a rendu cette version commune, mais quels sont les faits?


73
2018-05-23 11:00


origine


Une représentation est en binaire (2 ^ 10 ou 1024) tandis que l'autre est en décimal (10 ^ 3 ou 1000) ... - Trezoid
Si vous cherchez des personnes à blâmer, dirigez-vous vers les fabricants de disques durs. Cela donne l'impression que leurs appareils ont plus de capacité lorsqu'ils sont exprimés en Mo décimaux, en Go, etc. Ils ont toujours fait cela, mais ce n'est que récemment que l'écart entre les nombres décimaux et binaires a suffisamment augmenté. importe de manière significative. - LawrenceC
@ultrasawblade: Vous voulez accuser les fabricants de disques durs d’être l’un des seuls groupes à utiliser le terme gigabyte correctement? - paradroid
Il m'a toujours semblé bien compris que 1K = 1024 avec tout ce qui concernait les ordinateurs avant que les disques durs de 20 Go environ soient devenus monnaie courante. Cela coïncide également grossièrement avec le moment où de nombreuses personnes non techniques ont commencé à utiliser régulièrement des PC. De grandes quantités de documentation informatique (technique et non technique) datant du début des années 90 et avant ne mentionnent rien à propos des "décimales" ou des "kibibytes". - LawrenceC
@paradroid: le gigaoctet signifiait à l'origine 1024 Mo (et mb = 1024 Ko, etc.). Il a été rebaptisé 1000 parce que les fabricants de disques durs ont insisté pour l'utiliser mal. Certes, cela dépend de ce que vous considérez comme "correct" puisque kilo signifie 1000, mais dans l'informatique, le kilo-octet était toujours 1024 pour des raisons techniques jusqu'à ce qu'il soit changé en 1999. - James


Réponses:


Cela remonte à un certain temps et est détaillé ici. On dirait que vous pouvez blâmer IBM, s'il y en a un.

Après y avoir réfléchi un peu plus, je blâmerais les Américains dans leur ensemble, pour leur mépris flagrant de la Système international d'unités : P


63
2018-05-23 11:05



Il est toujours facile de blâmer les Américains. - Notinlist
@Notinlist: C'est une blague. - paradroid
Cela me rappelle une scène épique du film Pulp Fiction ... Celui qui pose la question du "système métrique". :-) - Pierre Watelet
@Notinlist Il est facile de toujours blâmer les Américains. C'est pourquoi nous le faisons tellement. Cela et le fait que c'est amusant. - Singletoned
L'entrée de 1961 y est intéressante, en ce sens qu'elle mentionne "65k" - étant le premier ordre de grandeur pouvant montrer une nette différence entre "k = 1024" et "k = 1000, arrondi", il est clair pour ce dernier. En 1964, par contre, tout le monde utilise les significations binaires. - Random832


Tout l'informatique était de bas niveau au début. Et à un niveau de programmation bas, le nombre "1000" est totalement inutile et ils ont besoin de préfixes pour des quantités plus importantes afin de réutiliser les SI. Tout le monde le savait sur le terrain, il n'y avait pas de confusion. Cela a bien servi pendant 30 ans ou qui sait.

Ce n’est pas parce qu’il s’agit d’Américains, il faut donc qu’ils rompent avec l’IS à tout prix. :-)

Il n'y a pas de programmeur que je connais et dit kibibyte. Ils disent kilo-octet et ils signifient 1024 octets. Les algorithmes sont pleins des puissances de 2. Même aujourd'hui, "1000" est un nombre vraiment inutile entre les programmeurs.

Dire kibi et mibi est trop drôle et attire l'attention du sujet. Nous sommes heureux de l’offrir aux secteurs des télécommunications et du stockage sur disque :-). Et je vais écrire des kibioctets sur les interfaces utilisateur où les non-programmeurs peuvent le lire.


26
2018-05-23 15:09



C'est encore plus drôle de dire quand on parle de bits - "mibibit" - James
Je pense que KiB, etc. est censé être prononcé kilobinarybyte, etc. et non kibibyte. - Lie Ryan
@Lie Ryan, utilisant des préfixes comme "kilobinarybyte", était une proposition qui a finalement échoué et qui avait des abréviations différentes de celles de kibibyte. Voir en.wikipedia.org/wiki/Binary_prefix - Ben Lee
Bien sûr, il est parfaitement acceptable de dire "kilobinarybyte" et il est en fait plus transparent et moins sournois que kibibyte, mais cet usage n'est pas approuvé par la CEI. - Ben Lee
serait-il donc juste de prononcer km comme kilodecimalmètres? - JustJeff


Il est correct et logique que les techniciens utilisent 1024 = 1K dans de nombreux cas.

Pour les utilisateurs finaux, il vaut normalement mieux dire 1000 = 1k car tout le monde est habitué au système de numération à 10 bases.

Le problème est de savoir où tracer la ligne. Parfois, le marketing ou la publicité ne parvient pas vraiment à la "traduction" ou à l'adaptation des données techniques et du langage aux utilisateurs finaux.


8
2018-05-23 11:18



Les techniciens devraient savoir que 1024 octets est vraiment un Kibibyte (KiB), mais sachez que le terme est ne pas connu par des personnes non techniques. - paradroid
Qui a dit que c'était correct? Kilo a signifié 1000 pour des siècles, donc IMO ils ne devraient jamais l'avoir utilisé pour 1024. - Bart van Heukelom
L'octet n'est pas une unité SI; KB signifie "kilobel" (accordé, une unité que vous ne voudrez jamais utiliser à moins que vous ne décriviez le son, le cas échéant, produit par le Big Bang). - geoffspear
@njd: Le C64 a 65536 octets de RAM. Par convention, la taille de la mémoire est spécifiée dans les kibiBytes, les taux de transfert de données en kilobits et la mémoire de masse dans tout ce que les fabricants pensent maintenant. Les disques durs utilisent T, G, M et k sur l'étiquette, Windows indique la taille en Ti, Gi, Mi et ki. Et ces disquettes de 1,44 Mo? Ce ne sont ni 1,44 Mo ni 1,44 Mo, ils sont 1,44 kilo-octets. C'est 1440kiB ou 1'474'560 octets. - Third
Les variantes kiB, etc. sont assez récentes. Je ne pense pas qu'ils étaient utilisés lorsque ce problème est survenu, certainement - j'avais l'impression qu'ils avaient été faits pour résoudre le problème! - Shinrai


Blame les fabricants de semi-conducteurs (ils nous fournissent uniquement du matériel binaire) [1]

Mieux encore: blâmer la logique elle-même (la logique binaire est la logique la plus élémentaire).

Mieux encore: qui devons-nous blâmer pour le système décimal misérable?

Il a beaucoup plus de défauts que le système binaire. C'était basé la toux sur le nombre moyen de doigts chez l'espèce humaine la toux

Oooo ...

[1] Je veux mon ordinateur quantique à trois qubit !!! À présent!


3
2018-05-23 14:56



Je pense que vous trouverez que le nombre moyen de doigts est inférieur à 10 </ pedant> - Rory Alsop
@ Rory: ^ c'était un bon rire - Mehrdad
@ Rory: "moins" </ pedant>. Ou est-ce? Attends une minute, j'ai ... - outsideblasts


1024 n'est pas à blâmer, car c'est la raison pour laquelle l'ordinateur (numérique) peut être aussi rapide et efficace qu'aujourd'hui. Comme l'ordinateur n'utilise que 2 valeurs (0,1), il élimine les difficultés et la complexité (inexactitude) du système anologique.

Ce serait plus compliqué si on disait qu'un kilo-octet vaut 1000 bits car 2 à quelle puissance est 1000? Ainsi, même 1 kilo-octet serait imprécis car il aura des points flottants ou une approximation.

Mais je blâme en grande partie le marketing pour la vente d'un 8 gigaoctets * et l'ajoutant dans la petite copie

* 1 gigabyte is 1,000,000,000 bytes. 

c'est vraiment dommage, c'est la même chose avec la vitesse de connexion, votre FAI dira 1.5Mbps au lieu de vous dire 150 kiloBytes. c'est juste très trompeur


1
2018-05-23 15:51



En disant quelle est la taille d’un fichier de 15682 bits ou à quelle vitesse un tel fichier peut être transféré sur un réseau, les puissances de 2 ne jouent aucun rôle. Et c'est le contexte où la plus grande confusion est. - Bart van Heukelom
En fin de compte, le fichier est stocké dans des pages de mémoire, alignées sur les limites de puissance binaires. Lors de l'envoi via TCP, la taille de la fenêtre dans laquelle les paquets sont envoyés est un multiple de puissances de deux. Lorsque le fichier est stocké sur le disque dur, il est stocké dans des blocs de puissances de deux. Je comprends ce que vous dites, mais kilobyte = 1024 (ou au moins des multiples de puissances de deux) est trop enraciné dans le calcul. - FryGuy
Pour être juste, le réseautage a toujours utilisé les bits comme base. - Synetech
La première disquette de 5,25 "contenait 109 375 octets et était annoncée comme" 109,4 kilo-octets ". Je suppose qu'ils l'ont fait pour de mauvaises raisons de marketing. Vous pensez qu'il serait plus logique de l'écrire comme" 106,8 Ko "? les vitesses et les vitesses du modem sont toutes mesurées en décimales pour nous tromper? - endolith
@Ibu: la différence entre 1 000 000 000 octets et 1 Go est de 0. En effet, pourquoi les fabricants de disquettes pourraient-ils gonfler malicieusement leur nombre lorsque la différence est si faible? Ils ne le feraient pas. Ils ont utilisé des milliers parce que c'est logique, évident et correct, pas parce qu'ils font partie d'un complot visant à frauder les clients. Les fabricants de disques durs ont également mesuré en 1000 ans depuis les années MB, pour la même raison. - endolith


Lorsque vous considérez que les nombres sur les ordinateurs sont binaires et que 2 ^ 10 est 1024, c'est tout à fait logique. Il est beaucoup plus facile de travailler avec 1024 plutôt que 1000, car vous pouvez facilement diviser par 1024 en utilisant uniquement des calculs entiers et changement de bit. La division par 1000 est une opération beaucoup plus coûteuse, qui peut nécessiter un calcul en virgule flottante.

Par exemple.

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1

0
2018-05-24 09:06



Vous pensez sérieusement que le temps de calcul est pertinent? Pourquoi les ordinateurs ne traitent-ils pas «km» sous la forme «1024 m», alors si la conversion est si difficile? - endolith
@endolith Oui je le pense, du moins historiquement. Bien qu’il puisse être négligeable aujourd’hui, dans les premiers temps où chaque cycle de processeur était très coûteux, un calcul simple et rapide donnant une réponse correcte serait préférable pour quelque chose comme ça. Surtout si les gens savaient par convention que 1KB signifiait 1024 octets. - Jo-Herman Haugholt