FPGA design engineer
0,1
рейтинг
10 сентября 2013 в 19:32

Разработка → KiB, Kib, KB, Kb

Вот в этом посте товарищ призывает следовать стандартам. Не всё так с ними просто, со стандартами. Я хочу показать насколько сложна ситуация с обозначениями единиц измерения информации. Не буду объяснять важность темы — кому интересно, прошу под кат.

История вопроса


Ярким примером путаницы с приставками является «мегабайт» производителей CD, DVD и дискет. Он равен 1024х1000 байт. Дискета на «1,44 Мб» на самом деле имеет ёмкость в 1,44х1024х1000 байт = 1440 Кб или 1,38 Мб (где 1 Мб = 1024х1024 байт). А ёмкость одностороннего однослойного DVD вместо 4,7 «ГБ» составляет 4,37 ГБ = 4,37х1024х1024х1024 байт.

В 1998 году Международное бюро мер и весов заявило, что приставки СИ относятся только к степеням десяти и не должны использоваться для обозначения степеней двойки.

В 1999 году МЭК ввела стандарт IEC 60027-2 с новыми приставками для обозначения количества информации. В 2008 году вышел аналогичный стандарт IEEE 1541 (различие только в том, что IEC предлагает писать «bit» полностью вместо «b» у IEEE). Использование этих приставок одобрено Международным комитетом мер и весов. Для обозначения степеней двойки в ближайшей приставке СИ второй слог заменяется на «bi» от binary (двоичный): kibibyte — KiB, mebibyte — MiB, gibibyte — GiB.

ГОСТ 8.417-2002, приложение А: «В соответствии с международным стандартом МЭК 60027-2 единицы «бит» и «байт» применяют с приставками СИ» (заглавные буквы К, М, Г,… обозначающие степени 10).

Также в стандарте сказано: «Исторически сложилась такая ситуация, что с наименованием «байт» некорректно (вместо 1000 = 103 принято 1024 = 210) использовали (и используют) приставки СИ: 1Кбайт = 1024 байт, 1Мбайт = 1024 Кбайт, 1Гбайт = 1024 Мбайт и т.д. При этом обозначение Кбайт начинают с прописной буквы в отличие от строчной буквы «к» для обозначения множителя 103

31 октября 2009 года Правительство РФ утвердило «Положение о единицах величин, допускаемых к применению в Российской Федерации», которое гласит: «Наименование и обозначение единицы количества информации «байт» (1 байт = 8 бит) применяются с двоичными приставками «Кило», «Мега», «Гига», которые соответствуют множителям «210», «220» и «230» (1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт). Данные приставки пишутся с большой буквы. Допускается применение международного обозначения единицы информации с приставками «K» «M» «G», рекомендованного Международным стандартом Международной электротехнической комиссии МЭК 60027-2 (KB, MB, GB, Kbyte, Mbyte, Gbyte).»

Т.е. для байт приставки СИ теперь обозначают степени двойки, а для бит всё остаётся по ГОСТ — приставки СИ обозначают степени 10.
1 Мбайт = 1 MiB = 1024х1024 байт, 1 Мбит = 1 Mb = 1000х1000 бит.

Сводная таблица приставок


IEEE 1541/IEC 60027-2
ГОСТ 8.417-2002, «Положение...»
kibibyte
KiB
1024 byte
килобайт
КБ
1024 байт
mebibyte
MiB
1024 KiB
мегабайт
МБ
1024 КБ
gibibyte
GiB
1024 MiB
гигабайт
ГБ
1024 МБ
tebibyte
TiB
1024 GiB
терабайт
ТБ
1024 ГБ
kibibit, kibit
Kib
1024 bit Для этих величин в РФ утверждённых обозначений нет
mebibit, mibit
Mib
1024 Kib
gibibit, gibit
Gib
1024 Mib
tebibit, tibit
Tib
1024 Gib
kilobyte
KB
1000 byte
megabyte
MB
1000 KB
gigabyte
GB
1000 MB
terabyte
TB
1000 GB
kilobit
Kb
1000 bit
килобит
Кб
1000 бит
megabit
Mb
1000 Kb
мегабит
Мб
1000 Кб
gigabit
Gb
1000 Mb
гигабит
Гб
1000 Мб
terabit
Tb
1000 Gb
терабит
Тб
1000 Гб


Мы видим, что Постановление Правительства от 2009 г. ввело обозначения для KiB, MiB, GiB,… лишив обозначения KB, MB, GB. Эта перестановка не решает главной проблемы: в России в 2 раза меньше утверждённых обозначений приставок для единиц количества информации, чем в международном стандарте МЭК 60027-2. Принятые обозначения не покрывают всех возможных вариантов. К тому же похожие по написанию и произношению (мегабайт) приставки обозначают разные множители!!!

Неофициальная практика, упомянутая в ГОСТ, покрывает все варианты: Б — байт, б — бит, 1 КБ = 1024 байт, 1кБ = 1000 байт.

Что делать?


Есть разные варианты. Например, скопировать международный стандарт. Или ввести ещё 2 группы приставок. Или узаконить неофициальную практику (см. выше). Лично я склоняюсь к первому варианту — не хотелось бы, чтобы наша страна (когда-то весьма прогрессивная в этом отношении) вступила в ряды любителей местных традиций в виде ярдов/унций/галлонов (путаница при совмещении которых с системой СИ уже была причиной серьёзных аварий).

Спасибо malan за указанные ошибки
Что делать с отечественным стандартом?

Проголосовало 1199 человек. Воздержался 271 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

@evocatus
карма
0,0
рейтинг 0,1
FPGA design engineer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (53)

  • 0
    Уже после публикации понял, что неофициальная практика тоже не даёт полного набора приставок. Да, там пишут К вместо к для килобайта, но что делать с десятичными приставками мега. гига и т.д.? Писать с маленькой буквы?
  • +3
    Для совместимости, конечно, лучше скопировать с международного, да и логики в нём больше.
    • +5
      А потом наши дети/внуки будут говорить «йобибайты и эксбибайты».
      • 0
        Когдай-то у нас говорили фонетически сложные иноземные слова полностью?) Вариант для йобибайтов писать пожалуй не стану.
      • 0
        На самом деле идея отличная. Люди и дальше будут говорить «килобайт», «мегабайт» и т.д. Просто они будут подразумевать, что в одном мегабайте 1000 килобайт. Собственно, большинство обычных людей так сейчас и делает :) Двоичные приставки нужны разве что для обозначения объёма оперативной памяти (так число получится красивше) и для программистов в некоторых случаях. А объёмы жёстких дисков уже давно указывают с десятичными приставками :)
  • +7
    Кмк, было бы удобно, если бы незначительные изменения, которые могут быть и описками, не влияли бы на смысл. Плюс использовать то, к чему привыкли:
    КБ = кб = Кб = кБ = kb = KB = Kb = kB = кбайт = килобайт = 1024 байт
    для бит использовать явное кбит
    • +2
      В международном стандарте не просто так решили как-то обозначить и десятичные приставки (которые Вы вовсе упускаете из виду). Они давно используются в телекоммуникациях. И до сих пор скорость многих последовательных интерфейсов принято обозначать в них, потому что отсюда можно сразу узнать частоту в Герцах, на которой идёт передача
      • 0
        Ну этот аспект я опустил, т.к. понятно, что разные приставки нужны.
      • 0
        Но в телекоме вроде как скорость измеряется в битах. С ними кажется все проще.
  • +3
    Странно, что никто не упомянул Лебедева:
    Все-таки хорошее название — очень важная вещь для претендующих на всемирное признание. «Бибикать» никто не захотел. А «мебибайт» звучит одинаково неприятно на всех языках.

    Звучит и правда неприятно. Еще непонятно, почему, если в -бибайтах «b» означает «binary», буква «i» ставится не после нее, а перед ней?
    Мне пока ближе неофициальная практика. Или надо перерабатывать международные стандарты.
    • +5
      Лебедев? Это который пишет ЮСБ? Нет, спасибо, гуманитариев-графоманов с манией величия нельзя на версту подпускать к стандартам.
      • –6
        Спасибо за минус в карму анонимному доброжелателю.
      • –1
        Ну так Лебедев конечно графоман, а также всякую околополитическую хрень пишет, но у него есть свои области компетентности. Например его мнению, что «мебибайт» неприятно звучит на всех языках, я склонен доверять.
        • +3
          Я бы тоже не назвал это слово благозвучным, но и особого дискомфорта оно у меня не вызывает. Более важным аргументом лично для меня является то, что произносить его трудновато — два слога с «б» подряд. В разговоре всё равно говорят «весит 300 метров». Тут главное, чтобы приставки были совершенно однозначные, и чтобы их все соблюдали.
          • +7
            Но не надо забывать, что если не изменить стандарт сейчас, то однажды наши накопители дорастут до ебибайт.
            • –3
              Я думаю, что к тому времени деноминируют единицы измерения. И мегабайт будет, например, в 1024 раза больше нынешнего. Просто чтобы не связываться с большими числами.
              • 0
                Это же вам не деньги. Если никуда не исчезнут биты, то никуда не исчезнут байты, килобайты и т.д. по цепочке. Сообщение в твиттере и через 1000 лет будет 140 символов, а значит нужны будут мелкие единицы измерения этой информации.
                • –1
                  Может быть, к тому времени будут другие кодировки, которые уже будут включать в себя, например, цвет и шрифт для каждого символа? Когда-то единицей информации был бит, сейчас де-факто стал байт. Уже вовсю используется слово полубайт и т.д.
                  • 0
                    Да и кто знает, может быть, изменится сама концепция программирования и взаимодействия человека с компьютером, так что оперировать байтами лет через 10-20 понадобится только разработчикам самых низкоуровневых интерфейсов?
                  • 0
                    Минимальной единицей информации всегда будет бит, потому что именно биты мы физически храним на носителях. ИМХО.
                    • 0
                      А вдруг кубиты все-таки появятся на домашних ПК?)
                    • 0
                      А вдруг на троичную логику перейдем?
                • –1
                  На самом деле у Вас очень резонные замечания, только надо понимать, что у России нет политического веса для влияния на международный стандарт, а эта путаница с обозначениями уже представляет плодородную почву для всяких маркетинговых махинаций производителей оборудования передачи данных, дисков и т.д. А мне по работе приходится использовать это оборудование как отечественное, так и импортное — это кошмар
            • +2
              Если вы имеете в виду двоичные эксабайты, то в ISO 80000 это эксбибайты. А до йобибайтов нам еще очень далеко.

              Ну и потом, разве вам не ласкает слух фраза «флэшка на восемь йобов»?
    • 0
      Хоровиц и Хилл в третьем издании «Искусства схемотехники» (2015) использовали приставки кило, мега и гига в значении степеней двойки со сноской: новые обозначения типа «мебибайт» похоже, как будто человек произносит «мегабайт» с набитым ртом =)
  • +9
    Напомнило xkcd.ru/394/

    Картинка

    • +2
      Сюда может прийти, например, Mithgol и напомнить, что нужно также обязательно скопировать подпись и картинке
      Подпись и комментарии переводчиков
      Я бы относился более серьёзно к «кибибайту» если бы он не звучал как «Kibbles N Bits».
      1. «Kibbles 'n Bits» — это собачий корм такой. Статья по ссылке — на английском.
      2. Стандарт Келли-Бутла тут не случайно, Стэн Келли-Бутл — известный писатель и певец. Он является автором книги «The Computer Contradictionary» — юмористически-саркастического словаря компьютерной терминологии.
      Рекурсия: см. рекурсия.
      3. F.P.U. это математический сопроцессор. Число дробное потому, что там была ошибка в обработке команды F_Add в результате чего, например, операция «F_Add 1, 1» возвращала результат вроде 1.988934845334. Брак быстро обнаружили, партию сняли, но самого прецедента хватило, чтобы породить массу шуток.
      4. НЖМД — естественно это накопитель на жёстких магнитных дисках, более известный сейчас как винчестер, винт или хард. Проблема 1024 vs 1000 чаще всего обсуждается именно из-за этого агрегата.
      5. Число 908 вовсе не случайно. Если посчитать в обратном направлении, то мы придём к году 1980му. Именно тогда был выпущен на рынок первый в мире «винчестер» (5,25-дюймовый Winchester, Shugart ST-506), его объем был всего 5 Мб.
    • 0
      Не смешно.
      За последние несколько лет уже раз четвертый перечитываю аналогичные темы.
      И все больше понимаю, что я ничего не понимаю.

      По-моему самое главное не читать описание всех этих «кБКБКиБКб», их пересчета, и историю вопроса. Это только запутывает. Надо смотреть только в результирующую таблицу где все четко расписано.
  • +5
    Разводить зоопарк — плохая идея, так что официальным вариантом должен быть СИ.

    На практике обычно биты считаются десятичными, а байты двоичными. Причем в битах считают пропускную способность, а в байтах объем. И я бы это тоже определил как правило, ибо утомили маркетинговые мегабайты-лайт.
    • 0
      А для длины ключей шифрования как?
      • 0
        Тут тоже обосновано применение именно бит, так как далеко не всегда там ровное количество октетов.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Больше похоже на опечатку (коих, уверен, будет много)
  • +3
    Считаю, что кило-, мега- и прочие приставки в случае байтов должны быть двоичными, какими они всегда и были. Как минимум из соображений обратной совместимости.

    Стандарт, не учитывающий фактор обратной совместимости — мертворождённый. То что даже на хабре международным стандартом пользуются единицы — уже показатель того, что никакой это не стандарт. Надо признать ошибку и заставить всех маркетологов использовать только двоичные много-байты.
    • +2
      СИ тоже в приказном порядке вводили. Также как в своё время в Англии указом ввели ярды, футы и пр.

      А в нашей стране за последние 100 лет смена систем единиц измерения произошла как минимум дважды. Первый раз — отказались от имперских вёрст ради километров и т.д. Второй раз — отказались от СГС ради СИ. Ещё мой отец в школе учился по системе СГС, а в институте — уже в СИ. И никакой истерики не было, хотя в той же физике ради этого гораздо больше констант изменилось, чем здесь приставок.
      • –1
        У СИ всё-таки есть очевидные преимущества. И некоторое подобие обратной совместимости: когда полметра или полкило примерно равны некоторым другим единицам.
        • 0
          Вы имели в виду пинту и пол-литра?
          • 0
            Разные. Например, 1 斤 (цзинь) равен полкило в Китае. Округлили, потому теперь ровно.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      1. Чипы памяти вроде как. Если на планке в 1ГиБ 8 чипов, то это вроде означает, что на одном чипе 4 «канала» по 1Гибит, а не 1 «канал» на 128МиБ.
      2. Некоторый софт предоставляет возможность выбора, некоторый даже не предоставляет.
      • 0
        2. dd по‐умолчанию считает именно с десятичными приставками. Судя по справке, использовать двоичные приставки пользователь сам может. А сказать программе, чтобы вывод производился не в СИ — нет. Другие утилиты вроде ls выводят по‐умолчанию с двоичными приставками, но могут быть проинструктированы использовать десятичные. Ktorrent использует двоичные, но и пишет явно «КиБ». Как настроить — не знаю. Opera (12) использует двоичные, но пишет «KB». Firefox поступает так же. Chorium не показывает размер в загрузках, так что ничего сказать не могу. rtorrent тоже использует двоичные, но пишет MB.
  • –1
    Эппл недавно пошла на поводу у маркетологов, и теперь в Mac OS один килобайт это 1000 байт. Что приводит к интересным эффектам — например, если через скайп передавать файл с мака на винду, файл передастся успешно, но скайп будет думать что он передал только 99% файла. Другой приятный эффект — оптимизируешь билд, чтобы он в 50 Мб влез (лимит на скачку через 3G — и при этом мегабайты используются «правильные»), а потом раз — и вспоминаешь что система тебя обманывает, а билд давно удовлетворяет необходимым условиям.
    • +2
      если через скайп передавать файл с мака на винду, файл передастся успешно, но скайп будет думать что он передал только 99% файла

      Ээ. А разве он не должен считать процент в байтах (много миллионов байт)? Что за неточный софт такой? Как он поймет, что файл-таки передан успешно? Я себе слабо представляю, как это может быть правдой (но, в принципе, готов поверить доказательствам).
      • 0
        Я не телепат, и не знаю как сделан скайп. Однако, факт налицо:
        image
        (файл успешно принят много часов назад)
  • +6
    Обратная совместимость? Удобство для тех, кто привык?

    Мне режет ум, что приставка кило- может означать что-то отличное от 1000:
    — 1 километр = 1000 метров
    — 1 килограмм = 1000 грамм
    — 1 килоджоуль = 1000 джоулей

    Так почему 1 килобайт вдруг должен быть = 1024 байт? Так сложилось? Значит сложилось неправильно, надо исправлять. Пусть хоть дети и внуки говорят правильно и не выносят себе мозги с(т)ранными исключениями из правил.

    кило-, мега-, гига-, а также мили-, деци- и др. — это степени 10
    киби-, миби-, гиби- и пр. — это степени (2^10)

    Итого: мы избавились от недоразумений и разложили все по полочкам. И наконец-то все логично, нет?
    • 0
      Ну система СИ тоже в общем-то недавно появилась.
    • –1
      Еще раз. Я не хочу бибикать. Тот факт, что кому-то захотелось, чтобы люди начали бибикать, не означает, что люди подчинятся этому правилу.
      • +1
        А как вам математические операции «набла на набла» и «ротор от ротора»?
    • 0
      Обратная совместимость? Удобство для тех, кто привык? Цифровая эпоха же! Давно пора отказаться от этой устаревшей десятичной системы и «разложить всё по полочкам». Десятичная система годится лишь для счёта на пальцах, но кто сейчас на пальцах считает-то? Надо всем переходить на шестнадцатиричную систему. А чтобы приставки не плодились как грибы нужно использовать логарифмичекскую шкалу:
      1 Nibble = 4 bit
      1 KNibble = Nibble^2 = 10 bit
      1 MNibble = KNibble^2 = (Nibble^2)^2 = 100 bit
      1 GNibble = MNibble^2 = (KNibble^2)^2 = ((Nibble^2)^2)^2 = 10000 bit
      1 TNibble = GNibble^2 = (MNibble^2)^2 = ((KNibble^2)^2)^2 = (((Nibble^2)^2)^2)^2 = 100000000 bit
    • 0
      Вообще, люди используют контекстно-зависимый язык, и поэтому вполне допустимо, чтобы кило = 1000 только в контексте СИ. А единицы измерения информации отнюдь не обязаны соответствовать этой системе, т.к. она разрабатывалась без учета специфики данной области.
  • +1
    (Б — байт, б — бит, К — 1024, к — 1000)

    Нет, приставки строчными писать совсем не надо. М — мега, м — милли. Всегда заглавные буквы обозначали положительные степени, а строчные — отрицательные (и пускай даже миллибайты не существуют, но вот скорость передачи в 900 миллибайт/с я себе все-таки еще могу представить — да и вообще, несуществование в природе определенных порядков величины — еще не причина забивать на эту практику).
  • –4
    Не использовать никакие приставки, писать полные формы слов.
  • +1
    Мне кажется, что проблема даже не в том, что кто-то не хочет «бибикать», а в том, что новое пересекается со старым и переопределяет его. Ну то есть одно дело перейти с фунтов на килограммы, и совсем другое — заставить обозначать тем же словом («килобайт») иной объём данных.

    Логичность единообразия в СИ хороша, но какое же это единообразие, когда каждый раз услышав слово «килобайт», я должен буду переспрашивать — это килобайт какой эпохи? Открывая старый учебник по физике, я хотя бы могу быть уверен, что под видом слона мне не дают крокодила; да, положим, я не знаю, сколько пинт в литре, но на то есть справочники. А прочитав «КБ», я даже не поперхнусь, решив, что всё понял. Учитывая, что софт может работать десятки лет, переписать учебники мало.

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

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.