73

Почему существует расхождение в количестве байтов в килобайтах? В некоторых местах я видел число 1024 (2 10), а в других - 1000 (и с M, G, T и т.д. Разница становится все больше).

Это не обсуждение того, должно ли это быть 1024 или 1000 (хотя вы можете обсудить это в комментариях), а о том, где / когда эта ситуация возникла и / или стала широко распространенной.

Насколько я знаю, производители Linux и оборудования никогда не используют вариант 1024. Это, и понаслышке, заставляет меня думать, что MS-DOS сделала эту версию распространенной, но каковы факты?

6 ответов6

63

Это восходит довольно давно, и подробно здесь. Похоже, вы можете обвинить IBM, если кто-нибудь.

Подумав об этом еще немного, я бы осудил американцев в целом за их вопиющее пренебрежение к Международным системам ООН :P

26

Все вычисления были низкоуровневыми в начале. А при низкоуровневом программировании число "1000" совершенно бесполезно, и им нужны префиксы для больших количеств, поэтому они повторно использовали SI. Все знали это на поле, не было путаницы. Хорошо прослужил 30 лет или кто знает.

Это не потому, что они были американцами, поэтому им нужно было сломать СИ любой ценой. :-)

Там нет программиста, которого я знаю, и говорит kibibyte. Они говорят килобайт и имеют в виду 1024 байта. Алгоритмы полны степеней 2. Даже сегодня "1000" является действительно бесполезным числом между программистами.

Говорить о киби и миби просто смешно и привлекает внимание субъекта. Мы с радостью отдадим его секторам телекоммуникаций и хранения данных :-). И я напишу kibibytes на пользовательских интерфейсах, где непрограммисты могут читать это.

8

Это правильно и имеет смысл для технических людей использовать 1024 = 1K во многих случаях.

Для конечных пользователей обычно лучше сказать 1000 = 1k, потому что все привыкли к системе счисления, основанной на 10.

Проблема в том, где провести черту. Иногда люди, занимающиеся маркетингом или рекламой, в действительности не преуспевают в "переводе" или адаптации технических данных и языка для конечных пользователей.

3

Виноваты производители полупроводников (они предоставляют нам только двоичное оборудование)[1]

А еще лучше: винить саму логику (бинарная логика - только самая элементарная логика).

Еще лучше: кого мы будем обвинять в убогой десятичной системе?

У него гораздо больше недостатков, чем у бинарной системы. Это был кашель, основанный на среднем количестве пальцев при кашле человека.

Оооо ...

[1] Я хочу свой квантовый компьютер с тремя кубитами !!! Сейчас!

1

1024 не стоит винить, это действительно очень хорошая вещь, потому что именно поэтому компьютер (цифровой) может быть таким же быстрым и эффективным, как сегодня. Поскольку компьютер использует только значение 2 (0,1), он исключает трудности и сложность (неточность) системы анологов из уравнения.

Было бы сложнее, если бы мы сказали, что килобайт равен 1000 бит, потому что от 2 до какой мощности 1000? так что даже 1 килобайт будет неточным, потому что он будет иметь плавающие точки или приближение.

Но я во многом виню маркетинг за продажу 8 гигабайт * и добавление этого мелким шрифтом

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

это действительно позор, то же самое относится и к скорости соединения, ваш провайдер скажет 1,5 Мбит / с вместо того, чтобы сказать вам ~ 150 килобайт. это просто очень вводит в заблуждение

0

Если учесть, что числа на компьютерах являются двоичными, а 2 ^ 10 равно 1024, это имеет смысл. Гораздо проще работать с 1024, чем с 1000, потому что вы можете легко разделить на 1024, используя только целочисленную математику и сдвиг битов. Деление на 1000 - намного более дорогая операция, которая может потребовать математических операций с плавающей запятой.

Например

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .