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

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

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

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

  

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

42 голоса | спросил Redandwhite 23 Maypm11 2011, 19:16:35

3 ответа


58
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)

То же самое с любым префиксом SI; k (1x10 3 ), M (1x10 6 ), G (1x10 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 something вместо 10 что-то ). Я предпочитаю использовать префиксы SI, потому что считаю, что это намного проще. Кроме того, Канада (моя страна) использует метрическую систему, поэтому я привык, например, 1kg = 1000g (или 1k anything = 1000 base things). Ничто из этого не является неправильным или правильным; просто убедитесь, что вы знаете, какой из них вы используете и на что он действительно приравнивается.

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

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

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

198 (decimal) = C6 (hex) = 11000110 (bits)
ответил squircle 23 Maypm11 2011, 19:44:04
8

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

* 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)

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

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

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

Десятичная система является базой-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. и др. сообщите размер в двоичном формате. Например, 500 ГБ = 476 ГБ, поэтому, когда привод сделан в 500 ГБ и помечен как таковой, Мой компьютер отображает двоичный 476GiB (но как «476GB»), поэтому пользователи задаются вопросом, куда пошли другие 23GB , (Производители дисков часто добавляют сноску к пакетам, заявляя, что «отформатированный размер меньше», что вводит в заблуждение, поскольку накладные расходы файловой системы ничем не отличаются от разницы между десятичными и двоичными единицами.)

Сетевые устройства часто используют биты вместо байтов по историческим причинам, а интернет-провайдеры часто любят рекламировать биты, потому что скорость соединений, которые они предлагают, больше: 12Mibps вместо 1.5MiBps. Они часто даже смешивают и сопоставляют биты и байты, десятичные и двоичные. Например, вы можете подписаться на то, что ISP называет «12MBps», думая, что вы получаете 12MiBps, но на самом деле получаете 1,43MiBps (12,000,000 /8/1024/1024).

ответил Synetech 6 J0000006Europe/Moscow 2012, 08:50:25
-4

Некоторые ответы не точны.

Давайте сначала сделаем несколько заметок:

Префикс «кило» означает 1 000. Префикс «кило» на что-либо означает 1 000 этого элемента. То же самое верно для «мега» или миллиона, «гига» или миллиарда, «тера» или триллиона и т. Д.

Причина 1 024 существует вместо того, чтобы просто иметь 1 000 из-за того, как работает двоичная арифметика. Двоичный, как следует из названия, является базой 2 (она имеет 2 цифры: 0, 1). Он может выполнять только арифметику с двумя цифрами, в отличие от базовой системы 10, которую мы используем ежедневно (0, 1, 2 ... 9), которая имеет десять цифр.

Чтобы получить номер 1 000 ( kilo ) с использованием двоичной арифметики, необходимо выполнить вычисление с плавающей запятой. Это означает, что двоичная цифра должна переноситься на каждую операцию до достижения 1 000. В системе с базой 10 1 000 = 10 3 (вы всегда поднимаете 10 на мощность в базе 10), очень простой и быстрый расчет для компьютера, который не выполняет «остатков», но в в базовой системе 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 с 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 до любого положительного целого, чтобы достигнуть 1000.

ответил user3005790 4 Mayam14 2014, 06:02:00

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132