Ищите разъяснения по логике / истории двоичного префикса против префикса SI

1104
Joe

Недавно я изучил префиксы SI и Binary, используемые для цифрового хранения / вычисления в целом, и все еще не уверен, что понимаю логику префикса Binary (фактический вопрос внизу).

Текущее понимание (суммировано):

SI:

Кажется довольно простым, каждый раз, когда вы получаете «общее количество байтов == текущее значение префикса * 1000»: используйте следующий по величине префикс, который можно выразить как «1000 ^ 1 + количество префиксов SI, которые вы уже использовали, начиная с в килограммах. Достаточно просто.

Binary:

Таким образом, очевидно, что память работает лучше / легче, когда используются единицы данных, имеющие степень 2 (честно, объяснение «системной архитектуры» у меня над головой, поэтому я просто скажу им слово). Кроме того, в первые дни компьютеров до того, как были официально установлены бинарные префиксы, машина с 1024 байтами памяти (что было бы наименьшим объемом памяти, использующим степень 2, которая разбивает 1000 байтов), дизайнеры решили использовать уже установленный SI стандарты и описывают этот объем памяти как килобайт, хотя они на самом деле не были равны (это было «достаточно близко» более или менее).

Это где мое понимание начинает разрушаться, я предполагаю, что, поскольку стандарты СИ «поднимаются» к следующему префиксу с использованием формулы (база 1000 ^ 1 + используемый префикс #), то эквивалент в двоичном коде равен (база 1024 ^ 1 + используемый префикс #), поскольку 1024 ближе к 1000, чем 512 или 2048 с использованием степеней 2, и, следовательно, более близко относится к формуле SI.

Актуальный вопрос:

Итак, если это правильно, в данный момент зачем вообще использовать двоичные префиксы? Неужели так плохо говорить «1,024 кБ» вместо 1 КиБ (или какую-либо единицу измерения)? Я предполагаю, что перечисление 4 ГиБ оперативной памяти как 4,29497 ГБ немного глупо (это причина? Просто использовать округленные числа?). И правильно ли мое общее понимание этих префиксных стандартов?

Любые разъяснения приветствуются, спасибо за чтение.

2
В чем конкретно твой вопрос? «Зачем вообще использовать бинарные префиксы?» Серьезно? К означает 1000, М означает 1 000 000 и т. Д. (С латыни). Они использовались для обозначения 1024, 1024 ² и т. Д., Потому что они были «достаточно близко» - но чем выше вы идете, тем больше расхождение. Люди вводили двоичные термины для создания формализмов, чтобы заменить способы неформального использования этих терминов. Кажется, вы знаете ответ. Вы действительно верите, что можно считать 2³² (т. Е. 2 ​​^ 32) 4.29497 G (что все еще только приблизительное значение; точное значение 4.294967296 G), когда вы можете сослаться на него * точно * как 4 Gi? Scott 7 лет назад 0
@ Скотт: Ваша точка зрения о округлении хорошо принята. Я полагаю, что я нахожусь в ситуации, когда, скажем, потребитель покупает «жесткий диск на 500 ГБ», затем смотрит в Windows и задается вопросом, почему у него нет 500 ГБ дискового пространства, поскольку Windows также отображает ГБ при отображении GiB. Или как Ram, который отображает «4GB», когда они также означают 4GiB. По сути, кажется, что в практическом применении двоичный стандарт игнорируется, и при отображении GiB как GB, человек, пишущий спецификацию, уже округляет количество бит. Почему бы просто не использовать один или другой стандарт на тот момент, если мы игнорируем один или другой? Joe 7 лет назад 0

1 ответ на вопрос

3
Scott

Ну, мы используем термины SI (иначе говоря, десятичные или метрические ), потому что они являются правильными терминами для весов и мер (килограмм = 1000 грамм, километр = 1000 метров и т. Д.) И потому что они существуют уже давно (в кило- и миллиградусов префиксы были введены в 1700 - х годах, и они происходят из греческого и латыни, которые были использованы 2K лет назад [хар - хар]). Мы используем двоичные термины, когда они уместны (в компьютерном контексте), потому что они являются правильными терминами в этих контекстах.

Но бинарные термины были введены менее 20 лет назад и формализованы менее 10 лет назад . И это не новые термины, которые идут с новыми понятиями (как, например, «лазер»). Это новые термины для установленных понятий (для которых использовались неправильные слова). Таким образом, они медленно завоевывают популярность (потому что многие люди все еще неправильно используют старые термины).

Что напоминает мне: ты, кажется, запутался в этом. Когда кто-то говорит «4 ГБ», когда он имеет в виду 4 294 967 296 байт, он не «округляет число», потому что он не означает «4,294967296 ГБ». Он означает «4 ГиБ», и он использует неправильный термин. Потому что он еще не изучил новые термины, или потому, что он не понимает, почему разница важна, или потому, что он боится, что люди, с которыми он разговаривает, поймут «GB», но не «GiB». Система бинарных терминов не игнорируется; он все еще находится в процессе обучения, принятия и принятия .

Это подробно описано в Википедии. Например, в статье Binary prefix :

Исторически сложилось так, что компьютерная индустрия использовала единицы измерения в килобайтах, мегабайтах и гигабайтах, а также соответствующие символы KB, MB и GB, по крайней мере, в двух немного разных системах измерения. В ссылках на объем основной памяти (ОЗУ) гигабайт обычно означает 1 073 741 824 байта. Поскольку это третья степень 1024, а 1024 - степень двух (2 10 ), такое использование называется двоичным префиксом.

В большинстве других случаев в отрасли используются множители « кило», « мега», « гига» и т. Д. В соответствии с их значением в Международной системе единиц (СИ), а именно в виде степеней 1000. Например, жесткий диск на 500 гигабайт содержит 500 000 000 000 байтов, а соединение Ethernet со скоростью 1 Гбит / с (гигабит в секунду) передает данные со скоростью 1 000 000 000 бит / с. В отличие от использования двоичного префикса, это использование описывается как десятичный префикс, так как 1000 является степенью 10 (10 3 ).

Использование одних и тех же префиксов единиц с двумя разными значениями вызвало путаницу. Начиная примерно с 1998 года, Международная электротехническая комиссия (МЭК) и несколько других организаций по стандартизации и торговле решили проблему неоднозначности, опубликовав стандарты и рекомендации для набора двоичных префиксов, которые относятся исключительно к полномочиям 1024. Соответственно, Национальный институт стандартов и технологий США (NIST) требует, чтобы префиксы SI использовались только в десятичном смысле: [1] килобайт и мегабайт обозначают одну тысячу байт и один миллион байт соответственно (в соответствии с SI), в то время как новые термины, такие как кибибайт, мебибайти гибибайт, имеющий символы KiB, MiB и GiB, обозначает 1024 байта, 1 048 576 байтов и 1 073 741 824 байта соответственно. [2]   В 2008 году префиксы МЭК были включены в стандарт МЭК 80000-13 .

[Предположительно, Википедия использует соглашение о написании больших десятичных чисел с группами из трех цифр, разделенных пробелами, чтобы уважать людей, которые используют .вместо ,«разделителя тысяч».]

Подобные абзацы появляются на других страницах. В метрическом префиксе :

В некоторых областях информационных технологий было принято назначать недесятичные кратные числа, основанные на степенях 1024, а не 1000, для некоторых префиксов СИ (кило, мега, гига), в отличие от определений в Международной системе единиц (СИ) ). Эта практика была санкционирована некоторыми отраслевыми ассоциациями, включая JEDEC . Для этой цели Международная электротехническая комиссия (МЭК) стандартизировала систему бинарных префиксов (kibi, mebi, gibi и т. Д.). [23]

И в кило- :

Второе определение широко используется в некоторых областях компьютерных наук и информационных технологий, что, однако, не соответствует определению СИ. Он использует килограмм как значение 2 10 = 1024 из-за математического совпадения, что 2 10 составляет приблизительно 10 3 . Причиной этого применения является то, что двоичные значения, изначально используемые в вычислениях, являются основанием 2, а не основанием 10, которое используется для префиксов SI . NIST комментирует эту путаницу: «Столкнувшись с этой реальностью, Совет по стандартам IEEEрешил, что стандарты IEEE будут использовать общепринятые, принятые на международном уровне определения префиксов SI »вместо килограмма для 1024. [4]

Больше ресурсов Википедии:

Это также было обращено на Super User раньше:

А для смеха, посмотрите этот комикс xkcd : (но, конечно, не принимайте это всерьез).

Вау, очень тщательный пост. Большое спасибо за разъяснения, я действительно ценю усилия. И последнее замечание о «округлении», чтобы прояснить пример «4 ГБ»: я говорю о таких ситуациях, как чтение спецификаций Ram на веб-сайте производителя. В списке указано, что «Рам» обозначен как «4 ГБ». Я уверен, что они делают это, потому что они знают, что большинство потребителей не знают, что означает GiB, но они все еще могут поставить 4.xx ГБ на спецификации (кажется, что отдел маркетинга сделал бы, потому что «чем больше, тем лучше»). Тем не менее они по-прежнему перечисляют его как 4 ГБ. Я, наверное, не очень хорошо это объясняю, но ваше объяснение хорошо понято. Joe 7 лет назад 0
Кроме того, этот комикс великолепен. Joe 7 лет назад 0

Похожие вопросы