Быстрое преобразование между единицами размера хранилища: блоки КБ, МБ, ГБ, ТБ и 512 байт

  1. Килобайт / мегабайт / гигабайт против кибибайта / мегибайта / гибибайта
  2. Неправильный способ конвертировать единицы размера
  3. Быстрый и простой способ конвертировать единицы размера
  4. Последний кусок головоломки: 512 байт блоков

В ИТ-индустрии очень распространенная задача - преобразовывать единицы измерения размера хранилища - байты, килобайты, мегабайты, гигабайты, терабайты и т. Д. Чтобы еще больше усложнить задачу, стандарт POSIX также указывает, что по умолчанию выводятся команды типа «df». ”И“ du ”должны иметь размер блока 512 байт.

Этот пост будет посвящен очень простому и быстрому способу конвертации между этими единицами.

Килобайт / мегабайт / гигабайт против кибибайта / мегибайта / гибибайта

Исторически существовало расхождение / спор о том, сколько места представлено в килобайтах, мегабайтах и ​​гигабайтах. Если вы спросите производителя жесткого диска, он скажет, что гигабайт составляет 1 000 000 000 байтов. Тем не менее, большинство операционных систем рассчитали гигабайт как 1 073 741 824 (что составляет 1024 * 1024 * 1024). Это примерно 7% -ное расхождение, и с увеличением размеров расхождение становится больше (например, терабайт имеет примерно 9% -ое расхождение).

Примечание редактора:
Приглашенный автор Брайан Смит - системный администратор AIX / Linux в Колорадо. Вы можете подписаться на Брайана в Твиттере на @brian_smi и увидеть его блог на http://www.ixbrian.com/blog

Решением всего этого было то, что официальное определение «гигабайта» теперь составляет 1 000 000 000 байтов, а «гибибайта» - 1 073 741 824. Видеть это запись в википедии для гораздо большей информации.

Я не знаю, как вы, но на самом деле я никогда не слышал, чтобы кто-то говорил слово «Гибибайт». В оставшейся части этого поста я буду ссылаться на гигабайт как 1 073 741 824 байта, так как это обычное использование среди людей, даже если оно неверно согласно определению из учебника.

Неправильный способ конвертировать единицы размера

Многие люди смотрят на размер файла, например, 54 183 672 092 байта, и говорят, что это «54 гигабайта» на основе первых двух цифр числа. Фактически это 50,5 гигабайта (54 183 672 092, разделенные на 1 073 741 824 (размер 1 ГБ), равны ~ 50,5 ГБ). Чем больше размер файла, тем больше будет расхождение между размером, который кажется на первый взгляд, и фактическим размером.

Быстрый и простой способ конвертировать единицы размера

Существует очень быстрый и простой способ сделать любое из этих преобразований. При использовании этого метода единственное число, которое вам нужно запомнить, это 1024. Единственное, что вам нужно знать, это имя / порядок размеров (килобайт, мегабайт, гигабайт, терабайт). Чтобы преобразовать меньшие единицы в большие (то есть взять байты и преобразовать их в килобайты, мегабайты, гигабайты или терабайты), просто разделите исходное число на 1024 для каждого размера единицы на пути к конечной требуемой единице.

Например, если вы хотите преобразовать 110 214 321 212 байт в мегабайты, вы должны поделить на 1024 (сначала преобразовать в КБ), а затем снова разделить на 1024 (чтобы получить МБ). Если вы хотите преобразовать в гигабайты, вы бы делили на 1024 три раза (один раз, чтобы получить КБ, один раз, чтобы получить МБ, а затем один раз, чтобы в конечном итоге в ГБ).

Чтобы преобразовать большие единицы в меньшие единицы (то есть взять несколько гигабайт и преобразовать их в мегабайты, килобайты или байты), просто умножьте исходное число на 1024 для каждого размера единицы на всем пути к конечной требуемой единице. Например, если вы хотите преобразовать 384 мегабайта в байты, вы просто умножите его на 1024 два раза (первый раз для преобразования в килобайт, а второй раз - в байтах).

Если вы хотите преобразовать 14 терабайт в число байтов, вы должны умножить 14 на 1024 четыре раза (сначала для преобразования в ГБ, затем в МБ, затем в КБ, а затем в байты).

Вот диаграмма, которая суммирует это:

Вот некоторые примеры:

  • Преобразование 67 003 324 746 байтов в гигабайты: 67 003 324 746/1024/1024/1024 = 62,40 ГБ (разделите на 1024 три раза, поскольку мы перемещаемся на 3 единицы, от меньших к большим единицам)
  • Преобразование 67 003 324 746 байт в мегабайты: 67 003 324 746/1024/1024 = 63 899 МБ (разделите на 1024 два раза, потому что мы перемещаемся на 2 единицы, меньшую на большую единицу)
  • Преобразование 8 846 679 мегабайт в терабайты: 8 846 679/1024/1024 = 8,44 ТБ (разделите на 1024 два раза, потому что мы перемещаемся на 2 единицы, меньшую на большую единицу)
  • Преобразовать 78 гигабайт в байты: 78 * 1024 * 1024 * 1024 = 83 751 862 272 (умножить на 1024 три раза, потому что мы перемещаемся через 3 единицы, больше в меньшую единицу)
  • Преобразование 52 терабайт в гигабайты: 52 * 1024 = 53 248 гигабайт (умножьте на 1024 один раз, потому что мы перемещаемся на 1 единицу, от большего к меньшему)

Последний кусок головоломки: 512 байт блоков

POSIX Стандарты требуют, чтобы по умолчанию вывод таких команд, как «df» и «du», выполнялся в 512-байтовых блоках, так что это блок, к которому вы будете время от времени прибегать. Блок 512 байтов - это то, на что он похож: 512 байтов данных.

Есть несколько способов конвертировать 512-байтовые блоки во что-то более значимое:

Вы можете преобразовать 512-байтовые блоки в килобайты, разделив их на 2. Например, шесть 512-байтовых блоков, разделенных на два, равны 3 КБ.

Вы можете преобразовать 512-байтовые блоки в байты, умножив их на 512. Например, шесть 512-байтовых блоков, умноженных на 512, равны 3072 байтам.

После того, как вы преобразовали 512-байтовые блоки в килобайты или байты, вы можете легко преобразовать их в любую другую единицу, в которой вы нуждаетесь.

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

Связанные чтения