0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Ёмкость для перевода
Переведите ёмкость между десятичными единицами производителей (kB, MB, GB, TB), двоичными единицами операционной системы (KiB, MiB, GiB, TiB) и битами, которыми меряют сети. Введите значение — и, помимо всех эквивалентов, вы увидите, почему диск на 1 ТБ отображается в компьютере как 931 ГБ.
Ёмкость так, как она указана на коробке или в системе
TB — это то, что написано на коробке; TiB — то, что считает система
Типовые ёмкости
Коробка против операционной системы
1 TBЧто говорит производитель
931,3226 GB Что показывает система 931,3226 GiB в настоящих единицах
Байты1 000 000 000 000
Производитель считает 1 000 GB, потому что для него каждая приставка — это 1000 байт. Операционная система меряет те же 1 000 000 000 000 байт степенями 1024 и показывает 931,3226 GB, хотя на самом деле это 931,3226 GiB: число на экране оказывается на 6,87 % меньше, при этом не теряется ни одного байта.
Эквиваленты
Десятичные (СИ) · степени 1000
Bбайт1 000 000 000 000
kBкилобайт1 000 000 000
MBмегабайт1 000 000
GBгигабайт1 000
TBтерабайт1
PBпетабайт0,001
EBэксабайт0,000001
Двоичные (МЭК) · степени 1024
KiBкибибайт976 562 500
MiBмебибайт953 674,3164
GiBгибибайт931,3226
TiBтебибайт0,9095
PiBпебибайт0,0008882
EiBэксбибайт0,0000008674
Биты · 8 бит в байте
bitбит8 000 000 000 000
kbitкилобит8 000 000 000
Mbitмегабит8 000 000
Gbitгигабит8 000
Tbitтерабит8
Приставка за приставкой
Приставка
Десятичная
Двоичная
Разница
Кило
1 kB1 000 B
1 KiB1 024 B
+2,4 %1 kB = 0,977 KiB
Мега
1 MB1 000 000 B
1 MiB1 048 576 B
+4,86 %1 MB = 0,954 MiB
Гига
1 GB1 000 000 000 B
1 GiB1 073 741 824 B
+7,37 %1 GB = 0,931 GiB
Тера
1 TB1 000 000 000 000 B
1 TiB1 099 511 627 776 B
+9,95 %1 TB = 0,909 TiB
Пета
1 PB1 000 000 000 000 000 B
1 PiB1 125 899 906 842 624 B
+12,59 %1 PB = 0,888 PiB
Экса
1 EB1 000 000 000 000 000 000 B
1 EiB1 152 921 504 606 847 000 B
+15,29 %1 EB = 0,867 EiB

Двоичные приставки KiB, MiB, GiB и TiB стандартизованы с 1998 года Международной электротехнической комиссией (стандарт 80000-13) как раз для того, чтобы снять эту двусмысленность. Linux и macOS их уже соблюдают; проводник Windows по-прежнему пишет ГБ там, где на самом деле GiB.

Как это работает

Единицы хранения данных считают двумя разными способами, и оба верны. Десятичная система, которой пользуются производители дисков и Международная система единиц, умножает на 1000 на каждой приставке: кБ — это 1000 байт, МБ — миллион, а ТБ — триллион. Двоичная система, родившаяся вместе с компьютерами, умножает на 1024, потому что память и шины адресуются степенями двойки.

Беда в том, что десятилетиями обе системы использовали одни и те же названия. Когда проводник Windows пишет «ГБ», на самом деле он считает гибибайты, то есть делит на 1024 три раза. Поэтому диск на 1 ТБ, в котором ровно триллион байт, отображается на экране как 931,32 ГБ: ничего не пропало, изменилась лишь линейка. С 1998 года стандарт МЭК 80000-13 снимает эту двусмысленность двоичными приставками KiB, MiB, GiB и TiB.

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

Примеры

1 TB931,32 GBНа диске 1 000 000 000 000 байт — ровно столько, сколько обещает коробка. Система делит их три раза на 1024 и показывает 931,32 ГБ, что строго говоря есть 931,32 GiB. На экране будто не хватает почти 69 ГБ; на диске не пропало ни байта.
1 GiB1073741824 BГибибайт — это 2^30 байт. Десятичный гигабайт — 1 000 000 000, значит двоичный больше на 7,37 %. Это та же разница, что отделяет то, что вы имеете в виду, когда говорите «гиг», от того, что понимает под этим каждая программа.
4 TB3,64 TiBЧем больше приставка, тем сильнее расходятся системы: 2,34 % на кило, 6,87 % на гига и 9,05 % на тера. Именно поэтому ощущение «маленького диска» усиливается как раз на больших дисках.
100 Mbit12,5 MBСетевые каналы меряют в битах, а хранилище — в байтах. Канал 100 Мбит/с качает максимум 12,5 МБ в секунду, потому что в каждом байте 8 бит. Этот расчёт объясняет половину претензий к интернет-провайдерам.

Сценарии использования

  • Понять, почему диск на 1 ТБ или флешка на 64 ГБ показывают меньшую ёмкость, чем указано на упаковке.
  • Перевести в читаемый вид размер в байтах, который возвращает API, журнал или команда ls -l.
  • Сравнить размер резервной копии или образа между двумя инструментами, которые меряют по-разному.
  • Рассчитать квоты, тома и лимиты загрузки, когда документация говорит в MiB, а интерфейс — в МБ.
  • Перевести скорость канала в Мбит/с в реальную скорость скачивания в МБ/с.
  • Объяснить клиенту на цифрах, что купленный диск не содержит меньше места, чем обещано.

Часто задаваемые вопросы

Купил диск на 1 ТБ, а вижу 931 ГБ — меня обманули?

Нет. На диске 1 000 000 000 000 байт, а именно это и означает 1 ТБ в десятичной системе, которой пользуются все производители. Windows берёт те же байты, делит их три раза на 1024, получает 931,32 и подписывает результат «ГБ» вместо «GiB». Это проблема надписи, а не ёмкости: все байты на месте. По-настоящему теряется другое — то, что резервирует файловая система при форматировании.

В чём разница между ГБ и GiB?

ГБ — это 1 000 000 000 байт (10^9), а GiB — 1 073 741 824 (2^30). Гибибайт больше на 7,37 %. То же соотношение повторяется на каждом уровне: кБ против KiB, МБ против MiB, ТБ против TiB. В двоичных обозначениях в середине стоит буква «i», и читаются они как киби, меби, гиби и теби.

Все ли операционные системы показывают одно и то же?

Нет, и это добавляет путаницы. Windows считает степенями 1024, но подписывает результат как ГБ и ТБ, поэтому для диска на 1 ТБ показывает 931 ГБ. macOS с 2009 года меряет десятично, и тот же диск отображается как 1 ТБ. В Linux всё зависит от утилиты: df -h и ls -lh используют 1024, df -H и ls -l --si — 1000, а многие программы уже пишут GiB там, где это уместно. Диск не менялся; менялся тот, кто его меряет.

Почему объём оперативной памяти совпадает с надписью на коробке?

Потому что память производят и адресуют степенями двойки: модуль «16 ГБ» на самом деле содержит 16 GiB, то есть 17 179 869 184 байта. Так как операционная система тоже считает в двоичной системе, оба числа совпадают и никто ничего не замечает. С дисками наоборот: производитель считает десятично, а система двоично, и расхождение сразу бросается в глаза.

Насколько растёт разница с каждой приставкой?

Она накапливается по 2,4 % на уровень. Показанное системой число меньше на 2,34 % у кило, 4,63 % у мега, 6,87 % у гига, 9,05 % у тера, 11,18 % у пета и 13,26 % у экса. Поэтому в файле в несколько килобайт разница незаметна, а в массиве на несколько петабайт это сотни терабайт ожиданий.

Мбит — это то же самое, что МБ?

Нет, разница в восемь раз. Сетевые каналы меряют в битах в секунду, а хранилище — в байтах, и в байте 8 бит. Канал 300 Мбит/с даёт максимум 37,5 МБ/с при скачивании, ещё до вычета заголовков протоколов. К тому же сетевые приставки всегда десятичные: Мбит — это миллион бит, а не 1 048 576.

Почему у моего SSD не хватает ещё больше места?

К разнице между десятичной и двоичной системами добавляются две вещи. Первая — резервирование (over-provisioning): контроллер оставляет себе часть флеш-памяти, недоступную пользователю, чтобы заменять изношенные блоки и ускорять запись. Вторая — файловая система, которая сразу после форматирования занимает место под таблицы, журнал и метаданные. Ни то, ни другое не является неисправностью: это плата за то, что накопитель работает и служит долго.

Какую же единицу использовать в документации?

Ту, что не оставляет сомнений. Если значение считается степенями 1024, пишите MiB или GiB; если степенями 1000 — МБ или ГБ. В API или файле конфигурации надёжнее всего отдавать количество байт напрямую и позволить интерфейсу решать, как его показать. Это одна строка кода, которая избавляет от часов споров о том, почему два инструмента показывают разные цифры для одного и того же файла.