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

Этот вопрос заставил меня задаться вопросом о различиях между этими тремя способами измерения размера: кибибит , килобит и обычный килобайт .

Я понимаю, что эти измерения имеют разные применения (скорость передачи данных измеряется в битах / сек), но я не совсем уверен, могу ли я сказать разницу между Mb и MB и MiB.

Вот комментарий, воспроизведенный ниже, взятый из этого ответа ( акцент мой ).

C64 имеет 65536 байт ОЗУ. По соглашению, размер памяти указан в kibiBytes , скорости передачи данных в килобитах и массовом хранении в любых производителях-think-of-now- Bytes . Жесткие диски используют метки T, G, M и k на этикетке, Windows сообщает размер в Ti , Gi , Mi и ki . И эти 1.44MB floppys? Это не 1,44 МБ и 1,44 МБ, они составляют 1,44 килокибибата. Это 1440kiB или 1'474'560 байт. – Третий

1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes) 1 kb (Kilobit) = 125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B) 1 kB (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes) 

Точно так же с любым префиксом СИ; k (1×10 3 ), M (1×10 6 ), G (1×10 9 ), поэтому, по расширению:

 1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes) 1 Mb (Megabit) = 125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B) 1 MB (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes) 

Единственными, которые немного отличаются, являются бинарные префиксы IEC (kibi / mebi / gibi и т. Д.), Потому что они находятся в базе 2, а не в базе 10 (например, все числа равны 2, а не 10). Я предпочитаю просто использовать префиксы SI, потому что я считаю, что это намного проще. Кроме того, Канада (моя страна) использует метрическую систему, поэтому я привык, например, 1 1kg = 1000g 1k anything = 1000 base things (или 1 тыс. 1k anything = 1000 base things ). Ничто из этого не является неправильным или правильным; Просто убедитесь, что вы знаете, какой из них вы используете и на что он действительно приравнивается.

Чтобы успокоить комментаторов:

 1 Byte (B) = 2 nibbles = 8 bits (b) 

Вот почему, если вы когда-либо смотрели в шестнадцатеричном редакторе, все делится на два шестнадцатеричных символа; Каждый шестнадцатеричный символ – это размер полубайта, а от двух до байта. Например:

 198 (decimal) = C6 (hex) = 11000110 (bits) 

Есть несколько основных понятий, которые просты и понятны:

 * A bit (b) is the smallest unit of data comprised of just {0,1} * 1 nibble (-) = 4 bits (cutesy term with limited usage; mostly bitfields) * 1 byte (B) = 8 bits (you could also say 2 nibbles, but that's rare) 

Для преобразования между битами и байтами (с любым префиксом) просто несколько или разделите на восемь; Хорошо и просто.

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

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

Десятичная система – base-10, которую большинство людей используют и удобное использование, потому что у нас есть 10 пальцев. Двоичная система является базой-2, которую используют большинство компьютеров и удобное использование, поскольку они имеют два состояния напряжения.

Десятичная система очевидна и проста в использовании для большинства людей (это достаточно просто, чтобы размножаться в наших головах). Каждый префикс увеличивается на 1000 (причина в том, что это совсем другое дело).

Двоичная система намного сложнее для большинства людей, не использующих компьютер, и даже программисты часто не могут иметь несколько произвольно больших чисел в своих головах. Тем не менее, это просто вопрос о том, чтобы быть кратным двум. Каждый префикс увеличивается на 1,024. Один «K» равен 1024, потому что это ближайшая степень от двух до десятичной «k» 1000 (это может быть верно в этой точке, но разница быстро увеличивается с каждым последующим префиксом).

Номера одинаковы для битов и байтов, имеющих один и тот же префикс.

 * Decimal: * 1 kilobyte (kB) = 1,000 B = 1,000^1 B 1,000 B * 1 megabyte (MB) = 1,000 KB = 1,000^2 B = 1,000,000 B * 1 gigabyte (GB) = 1,000 MB = 1,000^3 B = 1,000,000,000 B * 1 kilobit (kb) = 1,000 b = 1,000^1 b 1,000 b * 1 megabit (Mb) = 1,000 Kb = 1,000^2 b = 1,000,000 b * 1 gigabit (Gb) = 1,000 Mb = 1,000^3 b = 1,000,000,000 b * …and so on, just like with normal Metric units meters, liters, etc. * each successive prefix is the previous one multiplied by 1,000 * Binary: * 1 kibibyte (KiB) = 1,024 B = 1,024^1 B 1,024 B * 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B = 1,048,576 B * 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B * 1 kibibit (Kib) = 1,024 b = 1,024^1 b = 1,024 b * 1 mebibit (Mib) = 1,024 Kb = 1,024^2 b = 1,048,576 b * 1 gibibit (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b * …and so on, using similar prefixes as Metric, but with funny, ebi's and ibi's * each successive prefix is the previous one multiplied by 1,024 

Обратите внимание, что разница между десятичной и двоичной системами начинается небольшая (при 1K они всего лишь 24 байта или 2,4% друг от друга), но растет с каждым уровнем (при 1G, они составляют> 70MiB или 6,9% друг от друга).

Как правило, аппаратные устройства используют десятичные единицы (биты или байты), в то время как программное обеспечение использует двоичные (обычно байты).

Это связано с тем, что некоторые производители, в частности, накопители mfgs, любят использовать десятичные единицы, потому что это делает размер диска более крупным, но пользователи расстраиваются, когда обнаруживают, что он меньше, чем они ожидали, когда они видят Windows et. и др. Сообщите размер в двоичном формате. Например, 500GB = 476GiB, поэтому, когда диск сделан, чтобы содержать 500 ГБ и помечен как таковой, My Computer отображает двоичный 476GiB (но как «476GB»), поэтому пользователи задаются вопросом, куда пошли другие 23GB. (Производители дисков часто добавляют сноску к пакетам, заявляя, что «отформатированный размер меньше», что вводит в заблуждение, поскольку накладные расходы файловой системы ничем не отличаются от разницы между десятичными и двоичными единицами.)

Сетевые устройства часто используют биты вместо байтов по историческим причинам, а интернет-провайдеры часто любят рекламировать биты, потому что скорость соединений, которые они предлагают, больше: 12Mibps вместо 1.5MiBps. Они часто даже смешивают и сопоставляют биты и байты, десятичные и двоичные. Например, вы можете подписаться на то, что ISP называет «12MBps», думая, что вы получаете 12MiBps, но на самом деле получаете 1,43MiBps (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. В системе 10-го уровня 1 000 = 10 3 (вы всегда поднимаете 10 на мощность в базе 10), очень простой и быстрый расчет для компьютера, который не выполняет «остатков», но в системе базы 2 это Невозможно поднять 2 (вы всегда повышаете 2 до мощности в базе 2) до любого положительного целого числа, чтобы получить 1 000. Необходимо использовать операцию с плавающей запятой или длительное добавление, и для выполнения требуется больше времени, чем вычисление целочисленного значения 2 10 = 1024.

Возможно, вы заметили, что 2 10 = 1 024 соблазнительно близко к 1000 и 1 024 к 1 значению – 1 000 (очень хорошее приближение), а назад, когда скорость процессора была медленной, как у старой собаки, а память была очень ограниченной , Это было довольно приличное приближение и очень легко работать, не говоря уже о быстром выполнении.

Именно по этой причине термины с «кило», «мега», «гига» и т. Д., Префиксы застряли с неточными цифрами (1 024, 2 048, 4 096 и т. Д.). Они никогда не должны были быть точными числами, они были двоичными приближениями базовых 10 чисел. Они просто возникли как слова жаргона, которые использовали «технические» люди.

Чтобы еще более усложнить ситуацию, JEDEC разработала собственные стандарты для блоков, используемых в цепях полупроводниковой памяти. Давайте сравним некоторые единицы JEDEC с SI (стандартными международными) единицами:

Kb = Kilobit (JEDEC, 1 024 бит. Обратите внимание на верхний регистр «K» и нижний регистр «b»)
KB = kiloBit (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 в двоичном формате, подняв его на любое положительное целое число.

Бинарная система:

 +----------------------------------------------------------------------------------+ | 1 024ths | 512ths | 256ths | 128ths | 64ths | 32nds | 16ths | 8ths | 4s | 2s | 0 | +----------------------------------------------------------------------------------- 

Обратите внимание, что в двоичной системе столбцы двойны каждый раз. Это контрастирует с базой 10, которая увеличивается каждый раз на 10:

 +--------------------------------------------------------------------------+ | 1 000 000ths | 100 000ths | 10 000ths | 1 000ths | 100ths | 10s | 1s | 0 | +--------------------------------------------------------------------------+ 

Первые 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.

  • Как сжать / уменьшить размер фотографий JPEG для архивирования?
  • Как «извлечь» несуществующий USB-накопитель с хоста Windows 7?
  • Что эквивалентно Microsoft Access на Mac?
  • Давайте будем гением компьютера.