web-dev-qa-db-fra.com

Quelle est l'origine de K = 1024?

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

Ce n’est pas une discussion sur le fait de savoir si elle devrait être 1024 ou 1000 (bien que vous puissiez en parler 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 les rumeurs me font penser que MS-DOS a rendu cette version commune, mais quels sont les faits?

73

Cela remonte assez longtemps et est détaillé ici . Il semble que vous puissiez reprocher à IBM, si quelqu'un.

Ayant réfléchi un peu plus, je voudrais reprocher à l’ensemble des Américains, pour leur indifférence flagrante envers le Système international d’unités : P

63
paradroid

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

Ce n'est pas parce qu'ils étaient américains, ils devaient donc rompre l'IS à tout prix. :-)

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

Dire kibi et mibi est trop drôle et attire l’attention du sujet. Nous le cédons volontiers aux secteurs des télécommunications et du stockage sur disque :-). Et je vais écrire des kilo-octets sur des interfaces utilisateur où les non-programmeurs peuvent le lire.

26
Notinlist

Il est correct et logique pour les techniciens d’utiliser 1024 = 1K dans de nombreux cas.

Pour les utilisateurs finaux, il vaut généralement mieux dire 1000 = 1k, car tout le monde est habitué au système de numérotation basé sur 10.

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

8
mit

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

Mieux encore: blâmer la logique elle-même (la logique binaire n’est que 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. Il était basé tousse sur le nombre moyen de doigts dans l'espèce humaine toux

Oooo ...

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

3
sehe

1024 n’est pas à blâmer, c’est une très bonne chose, car c’est la raison pour laquelle l’informatique (numérique) peut être aussi rapide et efficace qu’aujourd’hui. Parce que l'ordinateur n'utilise que 2 valeurs (0,1), il élimine les difficultés et la complexité (imprécisions) du système anolog de l'équation.

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 inexact, car il aura des points flottants ou une approximation.

Mais je blâme en grande partie le marketing pour la vente de 8 gigaoctets * et l’ajouté en petits caractères.

* 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,5 Mbps au lieu de vous dire environ 150 kilo-octets. c'est juste très trompeur

1
Ibu

Lorsque vous considérez que les nombres sur les ordinateurs sont binaires et que 2 ^ 10 est égal à 1024, cela semble parfaitement 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 nombres entiers et décalage de bits . La division par 1000 est une opération beaucoup plus coûteuse, qui peut nécessiter des calculs 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