Байт

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск
Измерения в байтах
Десятичная приставка Двоичная приставка
Название Символ Степень Название Символ Степень
  МЭК ГОСТ  
байт B 100 байт B байт 20
килобайт kB 103 кибибайт KiB Кбайт 210
мегабайт MB 106 мебибайт MiB Мбайт 220
гигабайт GB 109 гибибайт GiB Гбайт 230
терабайт TB 1012 тебибайт TiB Тбайт 240
петабайт PB 1015 пебибайт PiB Пбайт 250
эксабайт EB 1018 эксбибайт EiB Эбайт 260
зеттабайт ZB 1021 зебибайт ZiB Збайт 270
йоттабайт YB 1024 йобибайт YiB Йбайт 280

Байт (англ. byte) — единица измерения количества информации. Чаще всего байт считается равным восьми битам, в этом случае он может принимать одно из 256 (28) различных значений. Для того, чтобы подчеркнуть, что имеется в виду восьмибитный байт, в описании сетевых протоколов используется термин «октет» (лат. octet).

Байт в современных x86-совместимых компьютерах — это минимально адресуемый набор фиксированного числа битов.

Иногда байтом называют последовательность битов, которые составляют подполе машинного слова, используемое для кодирования одного текстового символа (хотя правильней это называть символом, а не байтом). На некоторых компьютерах возможна адресация слов разной длины. Это предусмотрено инструкциями извлечения полей ассемблеров LDB и DPB на PDP-10 (англ.) и в языке Common Lisp.

Ряд ЭВМ 1950-х и 1960-х годов использовали 6-битовые символы в 48-битовых или 60-битовых машинных словах. В некоторых моделях ЭВМ производства Burroughs Computer Corporation (англ.) (ныне Unisys (англ.)) размер символа был равен 9 битам. Во многих современных цифровых сигнальных процессорах используется машинное слово длиной 16 бит и больше.

Название «байт» было впервые использовано в 1956 году В. Бухгольцем (англ. Werner Buchholz) при проектировании первого суперкомпьютера IBM 7030 (англ.) для пучка одновременно передаваемых в устройствах ввода-вывода шести битов, позже, в рамках того же проекта, байт был расширен до восьми бит.

Байтовая адресация памяти была впервые применена в системе IBM System/360. В более ранних компьютерах адресовать можно было только целиком машинное слово, состоявшее из нескольких символов, что затрудняло обработку нечисловых данных.

Кратные приставки для образования производных единиц для байта применяются не как обычно: уменьшительные приставки не используются совсем, а единицы измерения информации меньшие чем байт называются специальными словами (ниббл и бит); увеличительные приставки кратны 1024=210, то есть килобайт равен 1024 байтам, мегабайт — 1024 килобайтам или 1 048 576 байтам и т. д. для гига-, тера- и петабайтов. Разница возрастает с ростом веса приставки. Более правильно использовать двоичные приставки, но на практике они пока не применяются, возможно, из-за неблагозвучности — кибибайт, мебибайт, йобибайт и т. п.

Иногда десятичные приставки используются и в прямом смысле, например, при указании ёмкости жёстких дисков: у них гигабайт может обозначать не 1 073 741 824=1024³ байтов, а миллион кибибайтов (то есть 1 024 000 000 байтов), а то и просто миллиард байтов.

[править] Всегда ли в байте 8 битов

У старых компьютеров были размеры машинных слов и байтов, отличные от 8 бит. Обычно они были кратны шести. Восемь бит в байте появились только с появлением IBM System/360. Это стало стандартом де-факто, и с начала 1970-х большинство компьютеров использует байты, состоящие из 8 бит, и машинные слова, кратные 8.

У System/360 были 8-битные байты, вероятно, из-за использования BCD-формата представления числа: по 4 бита на каждую десятичную цифру (0-9), таким образом один байт мог представлять две цифры. В System/360 были специальные инструкции для обработки данных такого формата и было бы трудно использовать 6-битные байты для BCD, поэтому 8 бит в байте стали наилучшим решением.

По другой версии, 8-битный размер байта завязан на 8-битное числовое представление символа строки в кодировке EBCDIC. Из удобства: один байт = один символ.

В некоторых архитектурах (как правило, это суперкомпьютеры вроде Cray (англ.) или сигнальные процессоры вроде TMS320VC31) из-за используемой адресации размер байта равен размеру машинного слова и содержит 32 бита. В терминах языка программирования Си, sizeof(char) = sizeof(int) = 1.

[править] Обозначение

Российский ГОСТ 8.417-2002[1] («Единицы величин») в «Приложении А» для обозначения байта регламентирует использование русской заглавной буквы «Б». Кроме того, констатируется традиция использования приставок СИ вместе с наименованием «байт» для указания множителей, являющихся степенями двойки (то есть 1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт и т. д.), причём вместо строчной «к» используется заглавная «К».

Использование прописной буквы «Б» для обозначения байта соответствует требованиям ГОСТ и позволяет избежать путаницы между сокращениями от байт и бит. Однако следует учитывать, что в стандарте нет сокращения для «бит», поэтому использование записи вроде «Гб» как синонима для «Гбит» недопустимо.

[править] Примечания