Правда ли, что 1 МБ может означать 1000000 байт, 1024000 байт или 1048576 байт? [Дубликат]

63

Возможный дубликат: в
чем разница между кибибайтом, килобитом и килобайтом?

Если 1 КБ (килобайт) может означать 1000 байтов или 1024 байта,

А 1 МБ (мегабайт) может означать 1000 КБ или 1024 КБ,

не означает ли это, что 1 МБ может означать любое из четырех значений ниже? :

  1. 1000 × 1000 = 1000000 байт

  2. 1000 × 1024 = 1024000 байт

  3. 1024 × 1000 = 1024000 байт

  4. 1024 × 1024 = 1048576 байт

Или 2. и 3. не принимаются, поэтому 1 МБ может означать только 1000000 байт из 1048576 байт?

Pacerier
источник
3
Знаете ли вы, что есть -0 (отрицательный ноль) и +0 (положительный ноль)? ru.wikipedia.org/wiki/Signed_zero
Аки,
4
Единственное место, где я видел разные смешанные префиксы - это дискеты 1.44 [что не mebibyte и не megabyte].
AndrejaKo
Аки да, но я не понимаю, что вы пытаетесь сказать?
Pacerier
«Если числа не красивые, я не знаю, что есть». - Пол Эрдос
Аки
4
Пожалуйста, «КБ», а не «КБ».
Андреас Рейбранд

Ответы:

107

Во-первых, существует два типа префиксов, когда речь идет о цифровой информации (считанные байты ): префиксы SI и двоичные префиксы .

Префиксы СИ

Префиксы SI - это степени 1000 ( 1 000 1 , 1 000 2 , 1 000 3 и т. Д.):

  • 1 кБ = 1 килобайт = 1000 1 байт = 1000 байт;
  • 1 МБ = 1 мегабайт = 1 000 2 байта = 1 000 000 байтов;
  • 1 ГБ = 1 гигабайт = 1 000 3 байта = 1 000 000 000 байтов;
  • и так далее .

Как видите, только символы СИ, мега и выше, пишутся с большой буквы. Следовательно, KB не является допустимым префиксом .

Бинарные префиксы

Двоичные префиксы имеют степень 1024 ( 1 024 1 , 1 024 2 , 1 024 3 и т. Д.):

  • 1 КиБ = 1 кибибайт = 1 024 1 байт = 1024 байт;
  • 1 MiB = 1 мегабайт = 1 024 2 байта = 1 048 576 байтов;
  • 1 ГиБ = 1 гибибайт = 1 024 3 байта = 1 073 741 824 байта;
  • и так далее .

Как вы можете видеть здесь, каждый двоичный символ пишется с заглавной буквы, а перед символом B добавляется строчная буква i, чтобы указать, что мы говорим о кибибайтах вместо килобайтов, мегабайтах вместо мегабайтов и т. Д.


Однако бинарные префиксы широко не используются, Windows их вообще не использует.

Здесь происходит то, что Windows сообщает нам, что емкость жесткого диска составляет 300 066 795 520 байт, что, согласно Windows, составляет 279 ГБ. Однако мы знаем, что если 1 000 000 000 байтов = 1 ГБ, 300 066 795 520 байтов = ~ 300 ГБ = ~ 279,5 ГБ .

Поэтому, если вы видите 1 КБ (что не так, помните) или 1 МБ, предположим, что речь идет соответственно об 1 кибибайте и 1 мегабайте. Кб , кб , Гб , гб и т. Д. Также часто встречаются, хотя они представляют биты (8 бит = 1 байт).


В общем , ни в коем случае 1 КБ или 1 МБ не могут иметь несколько значений, даже если (плохое) использование говорит об обратном.

seriousdev
источник
3
Возможно, вам следует добавить, что, говоря о скорости передачи данных (в бит / с), обычно используют префиксы base-10, например, Гбит / с на самом деле означает «один миллиард бит в секунду».
Фрэнк
3
Двоичные префиксы являются относительно новыми, и все еще очень часто используют префиксы SI для обозначения степеней 2. Я думаю, что многие люди даже не знают о двоичных префиксах. @Novox делает хорошую мысль: даже люди, которые используют ГБ для хранения 1048576 байт, обычно используют Гбит / с для 1000000000 бит в секунду. Изобретение двоичных префиксов не сделало все использование согласованным.
Кит Томпсон
5
@kubanczyk: Я не согласен, что это лень - но лень не обязательно плохая вещь. Нам нужен способ обращения к хранилищу в единицах 1024, 1048576 или 1073741824 байтов и до (относительно недавнего) изобретения двоичных префиксов (Ki, Mi, Gi) с повторным использованием префиксов SI (K, M, Г) был единственный разумный способ сделать это. И мы делали это в течение стольких лет, что префиксы K, M, G все еще неоднозначны. Было бы лучше с самого начала последовательно использовать двоичные префиксы и префиксы SI, но этого не произошло.
Кит Томпсон
2
@kubanczyk Не поймите меня неправильно, я / я / сильный сторонник правильного использования юнитов. Тем не менее, я не думаю, что «это очевидно». Если бы это было на самом деле, не было бы вопросов, как этот, верно?
Фрэнк
3
Хммм, давайте попробуем наоборот, не так ли? Посмотрите, что случилось с 8 битами. Вместо того, чтобы называть его десятичным и настаивать на том, что в ИТ 8 иногда означает 10, а не 10, кто-то придумал новый термин и назвал его байтом. Вуаля! То же решение было возможно с 1024, если не с
65536.
14

Килобайт - это базовое измерение 10, поэтому 1 килобайт = 10 до степени 3 = 1000 байтов.

Хотя это не совсем точно для точного измерения физических данных, так как они хранятся в двоичном формате, который измеряется в базе 2, и, таким образом, кибибайт был создан в 1999 году для замены килобайта при использовании в контексте информатики для обозначения 1024 байта.

Кибибайт - это измерение базы 2, поэтому 1 кибибайт = 2 до степени 10 = 1024 байта.

То же самое относится и к мегабайту (1 мегабайт = 10 для мощности 6 = 1000000 байт), для которой основание 2 измеряется в мегабайтах (1 мегабайт = 2 для степени 20 = 1048576 байт)

  • (1) относится к мегабайту
  • (2) и (3) не принимаются
  • (4) относится к мебибайту
asdjaputra
источник
13
Хотя это технически правильно, я хотел бы отметить, что при обычном использовании никто не говорит кибибайт или мебибайт, а когда речь идет о «килобайтах», люди ссылаются на единицу, которую отображает Windows или ОС, то есть на кибибайт. Единственное место, где я регулярно видел, чтобы килобайты использовались правильно, - это емкость жесткого диска, которая без конца расстраивает пользователей.
Darth Android
4
Да, но только потому, что их операционная система не использует префиксы SI «правильно».
Фрэнк
2
Тем не менее, MB может означать 1 000 000 или 1 048 576 байт . Пока не правильно , она является широко распространенным явлением. CC @DarthAndroid
Даниэль Бек
Ах, 1998 ... когда Плутон был планетой, а килобайт был 1024 байта.
Скримсли
9

В настоящее время использование «КБ», «МБ» и т. Д. Для обозначения чего-либо, кроме 1000 байтов, 1000 х 1000 байт и т. Д., Является устаревшим и противоречит большинству официальных стандартов. Новый способ выражения 1024 байта, 1024 x 1024 байта и т. Д. - это KiB (кибибайт), MiB (мебибайт) и т. Д. Это беспорядок, и контекст необходим для понимания того, что имеется в виду. См. Http://en.wikipedia.org/wiki/Kibibyte для обсуждения этих вопросов.

kreemoweet
источник
7

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

В то время как префикс SI k обозначает 1000, но в ИТ часто используется для обозначения 1024 (с некоторыми сторонниками бинарных префиксов ), нет смысла выбирать между этими значениями одно и то же число .

Даниэль Бек
источник
@JdeBP: Интересная заметка. Было бы «правильно» (в смысле «2») сказать 1440 КБ. Я никогда не думал о / понял смесь двух «систем» в числе 1.44. +1.
BillP3rd
3

Вы правы в своем вопросе. 1 и 4 верны, 2 и 3 нет.

По сути, вы определяете «тысячу», которая равна 1000 или 1024, и используете ее для умножения. Они не меняются местами.

Во второй базе (двоичной) самое близкое к 1000 число, которое вы можете получить - 1024 (2 ^ 10). Это то, как компьютеры на самом деле думают о вещах, поэтому в оперативной памяти (RAM), например, 1 МБ будет 1048576 байт.

В базовой 10, однако, вы можете иметь 1000. Дисковые накопители работают так же, как и на жестком диске, обычно 1 МБ будет составлять 1000000 байт (хотя твердотельный режим работает в двоичном формате).

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

Джеймс Биллингем
источник
1

Итак, вот сделка. (Большинство современных компьютеров работают на базе 2, а не на базе 10. (Да, я знаю, что есть исключения, но они действительно являются исключительными случаями.) Для наших (ваших) целей все компьютеры общего назначения (и, конечно, все потребительские используют компьютеры общего назначения) используют базу 2 для всей внутренней обработки. Фундаментальная единица - это бит, который может быть нулем или единицей. Восемь из них вместе составляют байт; 16 слово. Теперь это вообще говоря ... 32-разрядные компьютеры обычно рассматриваются как использующие 32-разрядные "слова", 64-разрядные компьютеры, 64-разрядные слова и так далее. Вы заметили? Это все силы 2, Компьютер с одним «К» или килобайтом памяти всегда будет иметь 1024 байта памяти. Один мегабайт памяти всегда будет означать 1024 x 1024 байта. Опять же, все они имеют степень 2. Таким образом, компьютер с 64 МБ памяти всегда будет иметь 64 x 1024 x 1024 байта. Когда вы видите компьютеры, рекламируемые для продажи, объем памяти (ОЗУ) всегда будет основываться на степени 2. Вы никогда не увидите видеокарту, например, требующую 1 ГБ ОЗУ, что означает один миллиард байт.

Когда возникла путаница и что сводит людей с ума, это когда производители дисководов в своем стремлении предлагать все большие и большие диски говорили: «Эй! Знаете, в других областях (не в компьютерах) К равен 1000, а М - 1 000 000 ". Если бы пара парней обсуждала, например, цену продажи автомобиля, и один предложил: «Я думаю, что« 8K »звучит правильно», другой автоматически понял бы, что «8K» означает 8000 долларов (а не 8192 доллара). Итак, эти производители дисков сказали: «Давайте начнем рекламировать наши продукты, используя эти меры, чтобы они звучали лучше». Но подошли юристы и сказали: «Подождите здесь. Практически все, кто, вы знаете,то, как они работают, будет плохо плакать ». На что эти умные ребята из рекламы ответили:« Нет проблем. Хорошо, просто поместите маленькую звездочку рядом с емкостью на коробке и в нашей документации, которая говорит что-то вроде «* 1GB = 1 000 000 000 байтов». Задача решена."

И вот мы здесь со всей этой путаницей. Цитата из статьи вики выше, на которую ссылается @kreemoweet,

В большинстве случаев килобайт продолжает использоваться для обозначения степени десять, а также степени два.

И путаница продолжается. В практических целях, вы, вероятно, должны предполагать, что емкость диска основана на базовых 10 единицах измерения. Аналогично, объемы ОЗУ (вероятно) всегда будут основаны на единицах базы 2. Для других видов устройств и продуктов это, вероятно, будет зависеть от базовой технологии и от того, что, по мнению рекламодателей, им может сойти с рук. В конце концов, чем больше, тем лучше, не так ли?

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

BillP3rd
источник
2
Вы уверены, что это только чистый маркетинг? может быть, это также связано со структурой / организацией самого хранилища.
Barlop
3
-1 Это не маркетинговая вещь и не должно было заставить звучать диски больше. Это широко распространенное, но, тем не менее, полностью ложное объяснение. Это также вывод, основанный на грубом незнании предмета. Международная электротехническая комиссия и Институт инженеров по электротехнике и электронике фактически изложили обоснование, которое заключается в том, чтобы различные инженерные дисциплины говорили на одном языке и не путали друг друга, в 1997 году в статье IEEE Standards Bearer . Это очень практический инженерный вопрос.
JdeBP
4
Мой опыт работы в Miniscribe и позже в Maxtor в 1980-х и 90-х годах в качестве инженера говорит мне об обратном. Как компьютерные инженеры, мы склонны стремиться к степени 2. Байт всегда будет 8 бит. Как добавляет @barlop, в отличие от основной памяти компьютера, вращающиеся дисководы могут иметь различную структуру / организацию. Тем более, что технология привода продвинулась так, что число секторов на дорожке варьируется от внутреннего к внешнему краю поверхности записи. Обратите внимание, что сектора все еще имеют 512 байтов. (Это надоедливая сила 2 снова).
BillP3rd
1
Это недостаток опыта: узкий и близорукий взгляд на инженерию. Пойдите и прочитайте статью Носителя Стандартов IEEE . Это как бы тупое «но люди всегда используют силы двух». думая, что тогда происходит ужасная ошибка, когда он поражает инженерное большинство , которое не ослеплено, как это, что это было и нацелено прямо. Как я уже сказал, это практический инженерный вопрос, и вы по иронии судьбы демонстрируете ту самую проблему, на которую он был направлен. Это не маркетинг, и речь не идет о том, чтобы что-то звучало шире. Это полный сфабрикованный мусор. Не верь этому.
JdeBP
1
@JdeBP уверен, что инженеры определенно придумали условия kibibyte и т. Д., Что наглядно. И какая доля инженеров в мире жестких дисков использует его, я не знаю. Я бы подумал, что, возможно, они по контексту будут знать, что они подразумевают под килобайтом, и не нуждаются в глотке кибибайта, а может и нет. Похоже, что BillP3rd думает, что они будут знать, и это будет base2, и вы думаете, что они должны указать, чтобы знать между собой. Но маркетинг предпочел бы использовать меньшую единицу, десятичный префикс на упаковке. Интересно, занимался ли маркетинг этим еще до этой статьи IEEE?
Barlop
0

Да, так как это синтаксическая катастрофа. Эта статья Wiki объясняет проблему и включает таблицу «новых» слов, которые будут использоваться. Здесь, в реальном мире, никто не использует эти термины. Вы должны использовать контекст, чтобы определить, какое определение вы смотрите.

Джим Б
источник
4
-1 за это "никто". Я использую их здесь, в реальном мире, и я далеко не одинок.
JdeBP
1
Если бы средний потребитель спросил продавца о емкости памяти компьютера, о котором он думал, и ему сказали бы «4 гибибайта», они бы не поняли, что это значит. Точно так же подавляющее большинство людей никогда не произнесут вслух слова «гибибайт, тибибайт, пибибайт и т. Д.» Серьезно, попробуйте произнести "gibibyte" вслух в три раза быстрее, чем вы можете. Я могу сказать, что для себя, по крайней мере, я никогда не слышал их. (Для контекста я работаю в крупной софтверной компании, о которой вы, вероятно, слышали, и регулярно работаю с объемами данных в терабайтном и петабайтном масштабе.)
BillP3rd
+1 за упоминание этих забавных терминов и то, что большинство не используют их и используют контекст
barlop
1
«никто» означает «никто», ребенок, и не волшебным образом изменяется контекстом, чтобы означать нечто иное, чем то, что означает это слово. Это ложь, однако вы пытаетесь нарезать ее.
JdeBP
1
@JdeBP - извини, Jdebp, но желание этого не делает. Само существование термина «кибибайт» является доказательством того, что имелось (и есть) недоразумение относительно того, что имеется в виду. Я сожалею, что вы застряли с этим термином в течение десятилетия (должно быть, было трудно найти жесткий диск со значениями kibibyte в 2000 году). Я бы также посоветовал вам поработать над редактированием той статьи вики, на которую я ссылался - очевидно, они тоже все неправильно поняли из-за недостатка использования (они, должно быть, оставили вас в списке избирателей).
Джим Б.