23

Я посмотрел на жесткий диск и нашел документ (от Toshiba, ссылка: 2,5-дюймовый жесткий диск SATA mq01abdxxx), в котором говорится:

«Один гигабайт (1 ГБ) означает 10 ^ 9 = 1 000 000 000 байтов с использованием степеней 10. Однако операционная система компьютера сообщает о емкости хранилища, используя степени 2 для определения 1 ГБ = 2 ^ 30 = 1 073 741 824 байта, и, следовательно, показывает меньшую емкость хранилища ».

Тогда степени 10 больше, чем степени 2, хорошо.

Пример 10 ^ 2 = 100 и 2 ^ 2 = 4.

Но я не понимаю документ, который говорит для той же емкости хранения:

1 ГБ - 1 000 000 000 байтов (степени 10) и 1 073 741 824 байта (степени 2), затем: он показывает меньший объем памяти (степени 2). Почему это меньше? Если я увижу на 1 ГБ больше емкости хранения в степени 2, чем степени 10.

4 ответа4

58

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

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

Для обычного пользователя это чепуха и обременительно. Кроме того, префиксы "килограмм", "мега" и т.д. Вступают в конфликт со стандартом Международной системы единиц (СИ), где "1 киловатт" означает 10 ^ 3 или 1000 Вт.

Чтобы решить эту проблему, в 2000 году Международная электротехническая комиссия или МЭК предложили схему обозначения для блоков, основанных на степенях 2, по норме ISO/IEC 80000-13.

Новые имена были созданы путем замены второго слога в старом имени на «би» (имеется в виду «2»). Килобайт должен быть теперь кибибайт и так далее. Новые блоки также получили соответствующие символы, поэтому «10 кибибайт» теперь записывается как 10 КиБ вместо 10 КБ. Это таблица соответствия:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

Спустя 16 лет многие производители аппаратного и программного обеспечения все еще ссылаются на устройства base-2 со своими именами SI . «Мегабайт» может означать 1000000 байт или 1048576 байт.

Если вы покупаете жесткий диск объемом 100 ГБ, его емкость составляет 100x10 ^ 9 или 10 ^ 11 байт. Но, и это большое, но, операционная система будет сообщать только о том, что диск имеет емкость 93 ГБ (10^11)/(2^30) . Вы купили диск объемом 100 гигабайт , что эквивалентно дисководу емкостью 93 гигабайта . Операционная система использует неверную запись.

Производители дисков скрывают эту проблему с отказами от ответственности и объяснениями, которые всегда приводят к выводу, что «фактическая емкость может быть меньше».

21

Короче говоря: все дело в маркетинге.

jcbermu объяснил хорошо, но я не согласен с причинами всего этого.

В то время как любая информационная система использует двоичную систему, биты и байты записываются как ^ 2, что является нормальным. Так что это не операционная система или программное обеспечение виноваты в замешательство. Здесь все двоично.

Производители жестких дисков виноваты в том, что они указали емкость жесткого диска в системе ^ 10, что лишает вас практических ГБ. Жесткий диск объемом 20 ГБ будет на самом деле способен хранить 18 ГБ и т.д. На 1 ТБ диск будет иметь размер ~ 930 ГБ. Издевательство над «бибитом» было изобретено, чтобы попытаться предотвратить некоторую путаницу, но его практически не приняли на практике.

16

Ответ jcbermu хорош, но я хочу подойти к этому с другой стороны.

1 ГБ - 1 000 000 000 байтов (степени 10) и 1 073 741 824 байта (степени 2), затем: он показывает меньший объем памяти (степени 2). Почему это меньше? Если я увижу на 1 ГБ больше емкости хранения в степени 2, чем степени 10.

Носитель данных - любой носитель - может хранить определенное количество доступных битов. Обычно в вычислениях общего назначения это выражается в байтах или нескольких кратных байтах, но если вы начнете рассматривать, например, интегральные микросхемы памяти (интегральные схемы, микросхемы), вы увидите их емкость памяти, выраженную в терминах доступных битов.

На жестком диске будет храниться определенное количество битов или байтов, которые по техническим причинам рассматриваются в разрезе секторов. Например, накопитель на 4 ТБ может иметь 7 814 037 168 секторов по 512 байт каждый, что соответствует емкости хранения 4 000 787 030 016 байт. Это то, что вы на самом деле получаете. (На практике вы затем теряете часть этого из бухгалтерской информации компьютера: файловая система, журнал, разбиение на разделы и т.д. Однако, байты все еще там, вы просто не можете использовать их для хранения файлов, потому что они необходимы для хранения данные, которые позволяют эффективно хранить файлы.)

Конечно, число 4000787,030,016 несколько громоздко. По этой причине мы решили представлять эту информацию другим способом. Но, как показал jcbermu, мы решили сделать это двумя разными способами: в десяти силах или в двух силах.

В степенях десять 4 000 787 030 016 байт - это 4.000787030016 * 10 ^ 12 байт, которые округляются довольно хорошо; с четырьмя значащими цифрами округляется до 4,001 ТБ для определения SI "тера": 10 ^ 12. Наш жесткий диск может хранить более 4 * 10 ^ 12 байт, поэтому с точки зрения СИ это устройство хранения объемом 4 терабайта.

В степенях два 4 000 787 030 016 байт составляют 3,638694607 * 2 ^ 40 байт, что не очень хорошо округляется. Это также выглядит как меньшее количество, потому что 3.639 меньше, чем 4.001, и это плохо для маркетинга (кто хочет купить диск на 3,6 ТБ, когда производитель по соседству продает диск на 4,0 ТБ по той же цене?). Это двоичный префикс 3.6 "tebibytes", где "bi" указывает на то, что это величина два основания.

В действительности, однако, это точно такое же количество байтов; число выражается только по-разному! Если вы выполните математику еще раз, вы увидите, что 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, так что в итоге вы получите тот же объем памяти.

5

Другие ответы касались исторической причины разницы, но мне кажется, что вы спрашиваете о разнице в соответствии с математикой.

Вы правы в том, что одна степень 10 больше, чем одна степень 2, и что один гигабайт (10 ^ 9 байт) меньше одного гибибайта (2 30 байт).

Изменение размеров объясняется тем фактом, что в одном гибибайте (30 степеней) больше мощностей, чем в одном гигабайте (9 степеней). Оказывается, что количество сил оказывает большее влияние на окончательный размер, чем размер каждой отдельной силы.

Что касается того, почему указанный размер диска меньше при измерении в гибибайтах (2 ^ 30), чем при измерении в гигабайтах (10 ^ 9), естественно, что при измерении фиксированной величины большая единица измерения дает меньшее число , Например, рассмотрим высоту в дюймах против высоты в сантиметрах. Поскольку один дюйм больше одного сантиметра, эта же высота будет измерять меньше дюймов (например, 72 дюйма), чем сантиметры (например, 183 сантиметра). Высота является одинаковым физическим расстоянием в обоих случаях, но каждое измерение просто дает различное число в соответствии с единицей измерения.

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