Преобразование байтов в мегабайты

Я видел три способа преобразования из байтов в мегабайты:

  • мегабайта = байт /1000000
  • мегабайта = байт /1024/1024
  • мегабайта = байт /1024/1000

Хорошо, я думаю, что №3 абсолютно неправ, но я это видел. Я считаю, что № 2 прав, но я ищу некоторые авторитетные авторитеты (например, W3C, ISO, NIST и т.д.), Чтобы выяснить, какой мегабайт является истинным мегабайтом. Может ли кто-нибудь указать источник, который явно объясняет, как этот расчет сделан?

Бонусный вопрос: если # 2 - мегабайт, который называется # 1 и # 3?

BTW: производители жестких дисков не считаются авторитетами на этом!

Ответ 1

Традиционно по мегабайту мы подразумеваем ваш второй вариант - 1 мегабайт = 2 20 байтов. Но это неверно, потому что мега означает 1 000 000. Существует новое стандартное имя для байтов 2 20 это mebibyte (http://en.wikipedia.org/wiki/Mebibyte), и он набирает популярность.

Ответ 2

Существует стандарт IEC, который отличает термины, например. Mebibyte = 1024 ^ 2 байта, но Megabyte = 1000 ^ 2 (чтобы быть совместимым с единицами СИ, такими как килограммы, где k/M/... означает 1000/1000000). На самом деле большинство людей в области ИТ предпочтут Megabyte = 1024 ^ 2, а производители жестких дисков предпочтут Megabyte = 1000 ^ 2 (поскольку размеры жестких дисков будут звучать больше, чем они есть).

На самом деле, большинство людей путают стандарт IEC (множитель 1000) и традиционное значение (множитель 1024). В общем, вы не должны делать предположений о том, что означают люди. Например, 128 kBit/s для MP3 обычно означает 128000 бит, потому что множитель 1000 в основном используется с единичными битами. Но часто люди тогда называют 2048 kBit/s равными 2 Мбит/с - путают eh?

Итак, как правило, не доверяйте единицам бит/байт вообще;)

Ответ 3

BTW: производители жестких дисков не считаются авторитетами на этом!

О, да, они делают (и определение, которое они предполагают из S.I., является правильным). По соответствующей проблеме см. этот пост в CodingHorror.

Ответ 4

Разделите 2 на мощность 20, (1024*1024) bytes = 1 мегабайт

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  

Это то же самое.

Ответ 6

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

Ответ 7

Мегабайт означает 2 ^ 20 байтов. Я знаю, что технически это не связано с единицами СИ, и что некоторые люди придумали новую терминологию, которая означает 2 ^ 20. Ничего из этого не имеет значения. Усилия по изменению языка для "уточнения" вещей обречены на провал.

Производители жестких дисков используют его для обозначения 1 000 000 байт, потому что это означает, что в СИ так они фигурируют технически, что они не лежат (хотя на самом деле они есть). Это подпадает под ложь, проклятая ложь и маркетинг.

Ответ 8

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

Это не вопрос точности, а вопрос юзабилити. Предоставьте расчет, который наиболее полезен для ваших пользователей.