Этот вопрос заставил меня задуматься о различиях между этими тремя способами измерения размера: кибибайт , килобит и обычный килобайт .
Я понимаю, что эти измерения используются по-разному (скорость передачи данных измеряется в битах / с), но я не совсем уверен, смогу ли я определить разницу между Мб, Мб и МиБ.
Вот комментарий, воспроизведенный ниже, взятый из этого ответа ( выделено мной ).
C64 имеет 65536 байт оперативной памяти. По соглашению, объем памяти указан в kibiBytes , скорость передачи данных в килобитах и запоминающие устройства в любом-то-производителях, думают, из-сейчас- Bytes . Жесткие диски используют T, G, M и k на этикетке, Windows сообщает размер в Ti , Gi , Mi и ki . И эти 1.44MB дискеты? Это не 1,44 МБ и не 1,44 МБ, а 1,44 Килокибайта. Это 1440 кБ или 1 474 560 байт. - третий
источник
Ответы:
То же самое с любым префиксом SI;
k
(1x10 3 ),M
(1x10 6 ),G
(1x10 9 ), то есть по расширению:Единственными, которые немного отличаются, являются двоичные префиксы МЭК (kibi / mebi / gibi и т. Д.), Потому что они находятся в базе 2, а не в базе 10 (например, все числа равны 2 что-то вместо 10 что-то ). Я предпочитаю просто использовать префиксы SI, потому что я считаю, что это намного проще. Кроме того, Канада (моя страна) использует метрическую систему, к чему я привык, например
1kg = 1000g
(или1k anything = 1000 base things
). Ничто из этого не является неправильным или правильным; просто убедитесь, что вы знаете, какой из них вы используете, и что это на самом деле означает.Чтобы успокоить комментаторов:
Вот почему, если вы когда-либо заглядывали в шестнадцатеричный редактор, все делится на два шестнадцатеричных символа; каждый шестнадцатеричный символ размером с полубайта, и есть два байта. Например:
источник
500GB (box) = 465.7GiB (computer)
(и что , как они вас).Есть несколько основных терминов, которые просты и понятны:
Для преобразования между битами и байтами (с любым префиксом) просто умножьте или разделите на восемь; красиво и просто.
Теперь все становится немного сложнее, потому что есть две системы измерения больших групп данных: десятичная и двоичная . В течение многих лет программисты и инженеры просто использовали одни и те же термины для обоих, но путаница в конечном итоге вызвала некоторые попытки стандартизировать надлежащий набор префиксов.
Каждая система использует одинаковый набор префиксов, которые могут применяться к битам или байтам. Каждый префикс начинается одинаково в обеих системах, но после этого бинарные звучат как детские разговоры.
Десятичная система - это основание-10, к которому привыкло большинство людей и которым удобно пользоваться, потому что у нас 10 пальцев. Бинарная система - это base-2, к которой большинство компьютеров привыкли и которой удобно пользоваться, потому что у них два состояния напряжения.
Десятичная система очевидна и проста в использовании для большинства людей (она достаточно проста для умножения в наших головах). Каждый префикс увеличивается на 1000 (причина этого совсем другая).
Бинарная система гораздо сложнее для большинства некомпьютерных людей, и даже программисты часто не могут умножить произвольно большие числа в своих головах. Тем не менее, это просто быть кратным двум. Каждый префикс увеличивается на 1024. Один «K» равен 1024, потому что это ближайшая степень от двух к десятичному «k», равному 1000 (это может быть верно в данный момент, но разница быстро увеличивается с каждым последующим префиксом).
Числа одинаковы для битов и байтов с одинаковым префиксом.
Обратите внимание, что разница между десятичной и двоичной системами начинается с малого (при 1 КБ они составляют всего 24 байта или на 2,4% друг от друга), но растут с каждым уровнем (при 1 ГБ они составляют> 70 МБ или с интервалом 6,9%).
Как правило, аппаратные устройства используют десятичные единицы (биты или байты), в то время как программное обеспечение использует двоичные (обычно байты).
Это причина того, что некоторые производители, в частности, устройства mfgs для накопителей, предпочитают использовать десятичные единицы, потому что это приводит к тому, что размер диска звучит больше, но пользователи разочаровываются, когда обнаруживают, что его размер меньше ожидаемого, когда они видят Windows et. и др. сообщить размер в двоичном Например, 500 ГБ = 476 ГБ, поэтому, хотя накопитель рассчитан на 500 ГБ и помечен как таковой, « Мой компьютер» отображает двоичный файл 476 ГБ (но как «476 ГБ»), поэтому пользователи задаются вопросом, куда ушли остальные 23 ГБ. (Производители дисков часто добавляют сноску к пакетам, утверждая, что «форматированный размер меньше», что вводит в заблуждение, поскольку накладные расходы на файловую систему ничто по сравнению с разницей между десятичными и двоичными единицами.)
Сетевые устройства часто используют биты вместо байтов по историческим причинам, и интернет-провайдерам часто нравится рекламировать с использованием битов, потому что это делает скорость соединений, которые они предлагают, более высокой: 12 Мбит / с вместо 1,5 МБ / с. Они часто даже смешивают и сопоставляют биты и байты, а также десятичные и двоичные числа. Например, вы можете подписаться на то, что провайдер называет линией «12 МБ / с», думая, что вы получаете 12 МБ / с, но на самом деле просто получаете 1,43 МБ / с (12 000 000/8/1024/1024).
источник
Некоторые ответы не точны.
Давайте сначала сделаем несколько заметок:
Приставка «килограмм» означает 1 000. Приставка «кило» к чему-либо означает 1 000 этого предмета. То же самое верно для "мегапикселей" или "миллионов", "гига" или "миллиардов", "тера" или "триллионов" и так далее.
Причина, по которой 1 024 существует вместо простого 1 000, заключается в том, как работает двоичная арифметика. Двоичный код, как следует из его названия, является системой с основанием 2 (имеет 2 цифры: 0, 1). Он может выполнять арифметику только с двумя цифрами, в отличие от базовой системы 10, которую мы используем ежедневно (0, 1, 2 ... 9), которая имеет десять цифр.
Чтобы получить число 1 000 ( кило ) с помощью двоичной арифметики, необходимо выполнить вычисление с плавающей запятой. Это означает, что двоичная цифра должна переноситься при каждой операции до достижения 1 000. В системе Base 10 1 000 = 10 3 (вы всегда повышаете 10 до мощности в базе 10), это очень простой и быстрый расчет для компьютера, который можно выполнять без «остатков», но в системе Base 2 это невозможно поднять 2 (вы всегда повышаете 2 до степени в основании 2) до любого натурального числа, чтобы получить 1 000. Необходимо использовать операцию с плавающей запятой или длительное сложение, и для ее выполнения требуется больше времени, чем для вычисления целых чисел 2 10 = 1024
Возможно, вы заметили, что 2 10 = 1 024 соблазнительно близко к 1 000, а 1 024 к 1 значащему значению - 1 000 (очень хорошее приближение), и обратно, когда скорость процессора была низкой, как у старой собаки, и память была очень ограничена это было довольно приличное приближение и с ним очень легко работать, не говоря уже о быстром исполнении.
Именно по этой причине термины с префиксами «кило», «мега», «гига» и т. Д. Застряли с неточными цифрами (1 024, 2 048, 4 096 и т. Д.). Они никогда не предназначались для того, чтобы быть точными числами, они были двоичными приближениями базовых 10 чисел. Они просто возникли как жаргонные слова, которые использовали «технические» люди.
Чтобы еще больше усложнить задачу , JEDEC разработала собственные стандарты для устройств, используемых в полупроводниковых схемах памяти. Давайте сравним некоторые единицы JEDEC с единицами СИ (стандартными международными):
Кб = килобит (JEDEC, 1 024 бита. Обратите внимание на верхний регистр 'K' и нижний регистр 'b')
kB = килобит (SI, 1 000 бит. Обратите внимание на нижний регистр 'k' и верхний регистр 'B')
b = бит (JEDEC, обратите внимание на нижний регистр 'b')
b = ??? (SI не определяет слово «бит», поэтому его использование может быть произвольным)
B = байт (JEDEC, 8 бит. Обратите внимание на верхний регистр 'B')
B = ???? (SI не определяет слово «байт», а «B» используется для «Bel» [как в DeciBel])
KB = килобайт (JEDEC, 1 024 байта. Обратите внимание на верхний регистр 'K' и 'B')
kb = килобайт (SI, 1 000 байтов. Обратите внимание на использование нижнего регистра 'k' и нижнего регистра 'B')
Дело в том, что в разных местах используются разные префиксы с разными определениями. Не существует жесткого и быстрого правила относительно того, какой из них вы должны использовать, но следуйте тому, который вы используете.
Из-за понижающего голосования, позвольте мне уточнить, почему вы не можете заработать 1 000 в двоичном виде, увеличив его до любого положительного целого числа.
Бинарная система:
Обратите внимание, что в двоичной системе столбцы каждый раз дублируются. Это в отличие от системы base 10, которая увеличивается на 10 каждый раз:
Первые 10 степеней в двоичном коде (база 2):
2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1 024
Как видите, невозможно поднять двоичное число 2 до любого положительного целого числа, чтобы достичь 1 000.
источник