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

81622
Pacerier

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

Если 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 байт?

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

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

102
seriousdev

Во-первых, существует два типа префиксов, когда речь идет о цифровой информации (считанные байты ): префиксы 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 МиБ = 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 МБ не могут иметь несколько значений, даже если (плохое) использование говорит об обратном.

[Mac OS X недавно перешла на использование мощности 1000] (http://i.stack.imgur.com/J3kNv.png). Daniel Beck 12 лет назад 1
Возможно, вам следует добавить, что когда речь идет о скоростях передачи данных (в бит / с), обычно используются префиксы base-10, например, Гбит / с на самом деле означает «один миллиард бит в секунду». Frank 12 лет назад 2
@Novox Я не думаю, что это необходимо: я уже говорил, что * G * означает 1000 ^ 3, а * Gi * - 1024 ^ 3. seriousdev 12 лет назад 0
Двоичные префиксы являются относительно новыми, и до сих пор * очень * часто используют префиксы SI для обозначения степеней 2. Я думаю, что многие люди даже не знают о двоичных префиксах. @Novox делает хорошее замечание: даже люди, которые используют ГБ для хранения 1048576 байт, обычно используют Гбит / с для 1000000000 бит в секунду. Изобретение двоичных префиксов не сделало все использование согласованным. Keith Thompson 12 лет назад 3
@Novox очевидно, G - это префикс SI, который означает те же 1000000000 в любой единице, будь то гигабит, гигапаскаль или гигаватт. Ничто, кроме лени, не было причиной, чтобы использовать G, чтобы означать также 1073741824. kubanczyk 12 лет назад 0
@kubanczyk: Я не согласен, что это лень - но лень не обязательно плохая вещь. Нам * нужен * способ обращения к хранилищу в единицах по 1024, 1048576 или 1073741824 байтов и до (относительно недавнего) изобретения двоичных префиксов (Ki, Mi, Gi) с повторным использованием префиксов SI (K, M, G) был * единственный * разумный способ сделать это. И мы делали это в течение стольких лет, что префиксы K, M, G * все еще * неоднозначны. Было бы лучше с самого начала последовательно использовать двоичные префиксы и префиксы SI, но этого не произошло. Keith Thompson 12 лет назад 5
Некоторое время назад я написал напыщенную речь об этом, которая достигла кульминации некоторое время, но была вызвана протестами по поводу переключения OSX на базу 10: http://beesbuzz.biz/blog/e/2009/06/22-base10_file_sizes. PHP fluffy 12 лет назад 0
@kubanczyk Не поймите меня неправильно, я / я / сильный сторонник правильного использования юнитов. Тем не менее, я не думаю, что «это очевидно». Если бы это было на самом деле, не было бы вопросов, как этот, верно? Frank 12 лет назад 2
Хммм, давайте попробуем наоборот, не так ли? Посмотрите, что случилось с 8 битами. Вместо того, чтобы называть его десятичным и настаивать на том, что в ИТ 8 иногда означает 10, а не 10, кто-то * изобрел новый термин * и назвал его байтом. Вуаля! Такое же решение было возможно с 1024, если не с 65536. kubanczyk 12 лет назад 3
забавно как то 1000МБ не равно 1ГБ oldergod 8 лет назад 0
@oldergod 1000 мегабайт = 1 гигабайт seriousdev 8 лет назад 1
@seriousdev получил тебя спасибо. oldergod 8 лет назад 0
13
asdjaputra

Килобайт - это базовое измерение 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) относится к мебибайту
Хотя это технически правильно, я хотел бы отметить, что при обычном использовании никто не говорит «кибибайт» или «мебибайт», а когда речь идет о «килобайтах», люди ссылаются на единицу, которую отображает Windows или ОС, то есть «кибибайт». Единственное место, где я регулярно видел, как правильно используются килобайты, - это емкость жесткого диска, что без конца расстраивает пользователей. Darth Android 12 лет назад 13
Да, но только потому, что их операционная система не использует префиксы SI «правильно». Frank 12 лет назад 4
Тем не менее, MB * может означать 1 000 000 или 1 048 576 байт *. Хотя это не * правильно *, оно * широко распространено. CC @DarthAndroid Daniel Beck 12 лет назад 2
Ах, 1998 ... когда Плутон был планетой, а килобайт был 1024 байта. Skrymsli 6 лет назад 0
9
kreemoweet

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

7
Daniel Beck

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

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

Тем не менее, [люди, которые говорят о «1,44 МБ» дискетах, делают именно это] (http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/1mb44-is-not-a-standard-floppy-disc-size .html). JdeBP 12 лет назад 6
@JdeBP: Интересная заметка. Было бы "правильно" (в смысле 2) сказать 1440 КБ. Я никогда не думал о / понял смесь двух «систем» в числе 1.44. +1. BillP3rd 12 лет назад 0
3
James Billingham

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

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

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

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

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

1
BillP3rd

Итак, вот сделка. (Большинство современных компьютеров работают на базе 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. Для других типов устройств и продуктов это, вероятно, будет зависеть от базовой технологии и от того, что, по мнению рекламодателей, им может сойти с рук. В конце концов, чем больше, тем лучше, не так ли?

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

Вы уверены, что это только чистый маркетинг? может быть, это также связано со структурой / организацией самого хранилища. barlop 12 лет назад 2
Мощная ссылка спасибо! Pacerier 12 лет назад 0
-1 Это не маркетинговая вещь и не должно было заставить звучать диски больше. Это широко распространенное, но, тем не менее, полностью ложное объяснение. Это также вывод, основанный на грубом незнании предмета. Международная электротехническая комиссия и Институт инженеров по электротехнике и электронике фактически излагают обоснование, которое связано с тем, что различные инженерные дисциплины говорят на одном языке и не путают друг друга, в 1997 году в статье _IEEE Standards Bearer_. Это очень практический _инжиниринг_ вопрос. JdeBP 12 лет назад 3
Мой опыт работы в Miniscribe и позже в Maxtor в 1980-х и 90-х годах в качестве инженера говорит мне об обратном. Как компьютерные инженеры, мы склонны стремиться к степени 2. Байт всегда будет 8 бит. Как добавляет @barlop, в отличие от основной памяти компьютера, вращающиеся дисководы могут иметь различную структуру / организацию. Тем более, что технология привода продвинулась так, что число секторов на дорожку изменяется от внутреннего к внешнему краю поверхности записи. Обратите внимание, что сектора * по-прежнему * имеют 512 байтов. (Это надоедливая сила 2 снова). BillP3rd 12 лет назад 4
Это не очень хороший опыт: узкий и близорукий взгляд на инженерию. Перейдите и прочитайте статью _IEEE Standards Bearer_. Это как бы тупое «но люди всегда используют силы двух». думая, что тогда это идет ужасно неправильно, когда он поражает инженерное _majority_, которое _не_ не было таким тупым, что это было и нацелено прямо на. Как я уже сказал, это практический _инжиниринг_ вопрос, и вы по иронии судьбы демонстрируете ту самую проблему, на которую он был направлен. Это не маркетинг, и речь не идет о том, чтобы что-то звучало шире. Это полный сфабрикованный мусор. Не верь этому. JdeBP 12 лет назад 1
@JdeBP уверен, что инженеры определенно придумали условия kibibyte и т. Д., Что наглядно. И какую долю инженеров в мире жестких дисков используют, я не знаю. Я бы подумал, что, возможно, они по контексту будут знать, что они подразумевают под килобайтами, и не нуждаются в глотке кибибайта, а может и нет. Похоже, что BillP3rd думает, что они будут знать, и это будет base2, и вы думаете, что они должны указать, чтобы знать между собой. Но маркетинг предпочел бы использовать меньшую единицу, десятичный префикс на упаковке. Интересно, занимался ли маркетинг этим еще до этой статьи IEEE? barlop 12 лет назад 1
И так как мы говорим о префиксах SI и обо всем, я решил поделиться этим (чтобы облегчить тон): http://xkcd.com/992/ BillP3rd 12 лет назад 1
«(Большинство) современных компьютеров работают на базе 2, а не на базе 10. (Да, я знаю, что есть исключения, но они действительно являются исключительными случаями.)» - Э-э, мне нужен источник на компьютере с Base 10 ... Зачем тратить время на кубиты? dennmat 7 лет назад 0
0
Jim B

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

-1 за это "никто". Я использую их здесь, в реальном мире, и я далеко не одинок. JdeBP 12 лет назад 4
Если бы средний потребитель спросил продавца о емкости памяти компьютера, о котором он думал, и ему сказали бы «4 гибибайта», они бы не поняли, что это значит. Точно так же подавляющее большинство людей никогда не произнесут вслух слова «гибибайт, тибибайт, пибибайт и т. Д.» Серьезно, попробуйте произнести «gibibyte» вслух в три раза быстрее, чем вы можете. Я могу сказать, что для себя, по крайней мере, я никогда не слышал их. (Для контекста я работаю в крупной софтверной компании, о которой вы, вероятно, слышали, и регулярно работаю с объемами данных в терабайтном и петабайтном масштабе.) BillP3rd 12 лет назад 1
+1 за упоминание этих забавных терминов, и большинство из них не используют их и используют контекст barlop 12 лет назад 0
@JdeBP недостаточно контекста? barlop 12 лет назад 0
«никто» означает «никто», малыш, и магически не изменяется контекстом, чтобы означать что-то иное, чем то, что означает это слово. Это ложь, однако вы пытаетесь ее нарезать. JdeBP 12 лет назад 1
Таким образом, @JdeBP, мы можем заключить, что у вас был личный разговор или другие слышимые разговоры, в которых такие слова, как «мибибайт», «гибибайт» и т. Д. Были произнесены вслух в контексте, отличном от обсуждения что означают эти слова, и поэтому один остановился и сказал: «Извините, что?» BillP3rd 12 лет назад 0
@jdebp, ты предлагаешь, что кибибайт не был изобретен, потому что вокруг килобайта была путаница? Вы также утверждаете, что верите, что kibibyte (et al) находится в родном языке? Jim B 12 лет назад 0
Я использовал термин Kibibyte (KiB), чтобы прояснить то, о чем я говорил, я использовал его по телефону своему провайдеру. Парень не слышал об этом, я сказал Google, что я, он поблагодарил меня. Слова имеют свое использование, когда неясно, что подразумевается под килобайтом. Мне нужно было использовать его только один раз, и я описал килобайт. Я полагаю, что можно сказать десятичный килобайт или двоичный килобайт в качестве меток для обозначения того, что имеется в виду, а затем уточнить. Я бы не хотел использовать Kibibyte повторно! В любом случае, не в устной речи, dKilobyte и bKilobyte звучали бы лучше. barlop 12 лет назад 0
Я думаю, что говорил своему провайдеру, что передача данных была килобайта, как в 1000, а не кибибайт. Так что это был контекст, он, возможно, не был знаком с тем фактом, что некоторые вещи измеряются простым 1000 байт и т. Д. Это имело смысл в этом контексте. Но интересно, что одним контекстом, который мне пришлось использовать, было сказать «не кибибайт». barlop 12 лет назад 0
Я говорю о том, что я на самом деле написал, и это совершенно ясно: ваш ответ, Джим Б., является ложью. Ваше утверждение не основано на фактических измерениях, как в случае со многими из тех, кто заявляет об этом, и ваше недвусмысленное утверждение о нулевом использовании явно ложно и использовалось мной и другими на протяжении более десяти лет. JdeBP 12 лет назад 0
@JdeBP - извини, Jdebp, но желание этого не делает. Само существование термина «кибибайт» является доказательством того, что имелось (и есть) недоразумение относительно того, что имеется в виду. Я сожалею, что вы застряли с этим термином в течение десятилетия (должно быть, было трудно найти жесткий диск со значениями kibibyte в 2000 году). Я бы также посоветовал вам поработать над редактированием той вики-статьи, на которую я ссылался - очевидно, они тоже все неправильно поняли из-за недостатка использования (они, должно быть, исключили вас из списка опроса). Jim B 12 лет назад 1

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