Артемий Лебедев

§ 84. Сколько байтов в килобайте?

26 февраля 2002

Алиса. Меня зовут Алиса…
Шалтай-Болтай. Какое глупое имя! Что оно значит?
Алиса. Разве имя должно что-то значить?
Шалтай-Болтай. Конечно, должно! Возьмем, к примеру, мое имя — оно выражает мою суть! Замечательную чудесную суть! А с таким именем, как у тебя, ты можешь оказаться чем угодно… Ну просто чем угодно!

Л. Кэрролл. Алиса в Зазеркалье

Сегодняшний параграф посвящен теме, с которой начинается любой компьютерный учебник. Начинается он с объяснения минимальной терминологии — вот есть бит, а когда битов становится восемь, то это уже байт. А когда байтов накопится 1024, получим килобайт. Каждый эту смертную скуку по разу прочел, кто-то запомнил, кто-то — нет; прочитал учебник, закрыл — и все.

Тут и начинается наше расследование.

Давным-давно, в стародавние времена жили-были компьютеры. И все в них измерялось в байтах. Но они быстро выросли, и байтов стало много-много — целые тыщи. Тогда компьютерные первопроходцы придумали термин K для обозначения 1024 байт (210 байт), чтобы не путать с к — кило, то есть 1000.

Человечество в процессе долгого разглядывания пальцев выбрало десятичную систему счисления чуть раньше, чем был изобретен компьютер. А в конце XVIII века стандартолюбивые французы придумали метрическую систему мер, основанную как раз на десятке.

Хозяйке на заметку

В метрической системе обычно берут за основу какой-нибудь греческий или латинский корень и приставляют его ко всему. Все эти приставки возводят десятку в какую-нибудь степень. Скажем, миллиметр — это 10−3 метров (одна тысячная метра). А километр — это 103 метров (одна тысяча метров).

Все метрические обозначения нужно писать правильно, так как от этого зависит смысл: μ означает микро..., м означает милли..., м означает метр, а Ммега...

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

Изначально новая единица называлась К-байт (кабайт), но довольно быстро превратилась в килобайт, хотя этого никто не имел в виду изначально. Остальные значения подбирались по аналогии — мегабайт, гигабайт, терабайт... Все эти слова, по виду напоминающие метрические величины, на самом деле являются степенями двойки. А думать в степенях двойки очень неудобно — никто не думает о мегабайте — как о 1024 килобайтах.

Это только половина истории. Самое интересное: килобайты бывают не только двоичными, но и десятичными. И мы с ними ежедневно сталкиваемся.

Так исторически сложилось, что в К-байтах измерялась компьютерная память (ПЗУ). Поэтому 10 МБ памяти — это 10 485 760 байт, но никак не 10 000 000 байт.

Бóльшая часть производителей жестких дисков указывает объем изделий в десятичных мегабайтах и гигабайтах. А операционные системы смотрят на диски с точки зрения двоичных мегабайтов и гигабайтов. При покупке жесткого диска на 50 ГБ надо быть готовым к тому, что «недо» составит 3,5 ГБ. Оставшиеся 46,5 ГБ — это и есть честный объем диска. Но в двоичных гигабайтах!

Лирическое отступление

В характеристиках жидкокристаллических мониторов стоит обратить внимание на надпись: «диагональ экрана — 15″ (эквивалент 17″ с электронно-лучевой трубкой)». Это означает лишь то, что производители обычных кинескопов меряют диагональ, включая нерабочие области. Все равно в мире не бывает таких потребителей, которые придут в магазин с дюймовой линейкой, чтобы замерить экран. Главное — победить в борьбе красивых цифр (см. также § 70).

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

Своей жизнью живет телекоммуникационная индустрия. Там изначально заведено все измерять в десятичных килобитах. Обычно скорость передачи данных меряется килобитами в секунду (кб/сек.). Модем на 28,8 кб/сек. при хорошей погоде передает в секунду ровно 28 800 бит, то есть примерно три с половиной двоичных килобайта. В модеме «на 28,8 К» обозначение «К» вместо «кб/сек.» является плодом фантазии маркетологов и профессионалами не используется.

Особый случай наблюдался у изобретателей 3,5-дюймовой дискеты (которая, на самом деле, 90-миллиметровая). На каждой коробке было указано «1,44 МБ». Все помнят это число. И все помнят, что влезало на дискету гораздо меньше обещанного. Почему? Потому что в данном случае речь идет об особых мегабайтах, в каждом из которых содержится 1 024 000 байт.

Читатель, к этому месту слегка подуставший от разницы между двоичными и десятичными измерениями, представит, чтó с этой разницы имеют производители железа. Реклама пойдет на все, чтобы нарисовать самую вкусную цифру. Она не будет иметь отношения ни к чему, но зато франклины из кошелька будут вылетать охотнее на красивую приманку. Большего, собственно, и не требуется.

Кроме всего прочего, в системе Си буква К давно зарезервирована для обозначения температуры по абсолютной шкале Кельвина. Чтобы хоть как-то спасти эту шизофреническую ситуацию, Международная электротехническая комиссия (МЭК) попыталась в марте 1999 года навести порядок. Мэковцы предложили использовать новые названия для двоичных измерений и придумали новые сокращения, проложив аббревиатурные коржики кремом из буквы и: килобайт предлагалось переименовать в кибибайт (КиБ), мегабайт — в мебибайт (МиБ) и т. д. В ноябре 2000 года эти изменения были официально внесены в международный стандарт.

См.: IEC 60027–2 (2000–11) — Letter symbols to be used in electrical technology — Part 2: Telecommunications and electronics

Хорошая по замыслу идея с треском провалилась — в день написания этого параграфа «Яндекс» по запросу «кибибайт» выдал ровно семь сайтов, из них два — сборники анекдотов.

Все-таки хорошее название — очень важная вещь для претендующих на всемирное признание. «Бибикать» никто не захотел. А «мебибайт» звучит одинаково неприятно на всех языках.

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

Назва­ние Аббре­виатура Значе­ние Стандарт МЭК (неживой)

бит б 0 или 1
байт Б 8 бит
килобит кбит
кб
1000 бит
килобайт (двоичный) КБ 1024 байта кибибайт
килобайт (десятичный) кБ 1000 байт
мегабит Мб 1000 килобит
мегабайт (двоичный) МБ 1024 килобайта мебибайт
мегабайт (десятичный) МБ 1000 килобайт
гигабит Гб 1000 мегабит
гигабайт (двоичный) ГБ 1024 мегабайта гибибайт
гигабайт (десятичный) ГБ 1000 мегабайт
Заказать дизайн...