байт | |
---|---|
Система единиц | единиц, полученных из бита |
Единица цифровой информации | , размер данных |
Символ | B или (при упоминании ровно 8 битов) o |
Байт является единицей цифровой информации, которая обычно состоит из восьми битов. Исторически байт представлял собой количество битов, используемых для кодирования одного символа текста на компьютере, и по этой причине это наименьшая адресуемая единица памяти во многих компьютерных архитектурах. Чтобы исключить двусмысленность байтов произвольного размера из общего 8-битного определения, документы сетевого протокола, такие как The Internet Protocol (RFC 791) (1981), ссылаются на 8-битный байт как на октет .
Размер байта исторически зависел от оборудования, и не существовало определенных стандартов, определяющих этот размер. Были использованы размеры от 1 до 48 бит. Шестибитный символьный код часто использовался в ранних системах кодирования, а компьютеры, использующие шестибитные и девятибитные байты, были распространены в 1960-х годах. Эти системы часто имели слова памяти из 12, 18, 24, 30, 36, 48 или 60 бит, соответствующих 2, 3, 4, 5, 6, 8 или 10 шестибитным байтам. В эту эпоху группы битов в потоке команд часто назывались слогами или slab, прежде чем термин байт стал общепринятым.
Современный стандарт де-факто восьми битов, как описано в ISO / IEC 2382-1: 1993, представляет собой удобную степень двойки, разрешающую двоично-кодированные значения от 0 до 255 для одного байта - 2 в степени 8 равно 256. Международный стандарт IEC 80000-13 кодифицировал это общее значение. Многие типы приложений используют информацию, представленную в восьми или меньшем количестве бит, и разработчики процессоров оптимизируют это общее использование. Популярность основных коммерческих вычислительных архитектур способствовала повсеместному принятию восьмибитного размера. Современные архитектуры обычно используют 32- или 64-битные слова, состоящие из четырех или восьми байтов.
Символ единицы для байта был обозначен как заглавная буква B Международной электротехнической комиссией (IEC) и Институтом инженеров по электротехнике и электронике (IEEE) в отличие от бита, чей символ IEEE - строчная буква b. На международном уровне блок октет, символ o, явно определяет последовательность из восьми битов, устраняя двусмысленность байта.
Термин «байт» был придуман Вернером Бухгольцем в июне 1956 года, на ранней стадии проектирования компьютера IBM Stretch, который имел адресацию к инструкциям битовой и переменной длины поля (VFL) с размером байта, закодированным в инструкции. Это преднамеренное изменение слова bite, чтобы избежать случайной мутации в бит.
Другой источник байта для групп битов, меньших размера слова компьютера, и в частности групп из четырех битов, зарегистрировано Луисом Дж. Дули, который утверждал, что придумал этот термин во время работы с Жюлем Шварцем и Диком Билером над системой ПВО под названием SAGE в Лаборатория Линкольна Массачусетского технологического института в 1956 или 1957 г., которая была совместно разработана Rand, MIT и IBM. Позже в языке Шварца JOVIAL фактически использовался этот термин, но автор смутно напомнил, что он произошел от AN / FSQ-31.
Ранние компьютеры использовали различные четырехбитные двоично-десятичные представления (BCD) и шестибитные коды для печатных графических шаблонов, распространенных в США Армия (FIELDATA ) и ВМФ. Эти представления включали буквенно-цифровые символы и специальные графические символы. Эти наборы были расширены в 1963 году до семи битов кодирования, названного Американский стандартный код для обмена информацией (ASCII) как Федеральный стандарт обработки информации, который заменил используемые несовместимые коды телетайпов. различными ветвями правительства и университетами США в 1960-е годы. ASCII включает в себя разделение букв верхнего и нижнего регистра и набор управляющих символов для облегчения передачи письменного языка, а также функций устройства печати, таких как перемещение страницы и перевод строки, а также физическое или логическое управление потока данных по средствам передачи. В начале 1960-х, будучи также активным в стандартизации ASCII, IBM одновременно представила в своей линейке продуктов System / 360 восьмибитный расширенный двоично-десятичный код обмена (EBCDIC), расширение их шестибитных двоично-десятичных представлений (BCDIC), используемых в более ранних перфокартах карт. Известность System / 360 привела к повсеместному внедрению восьмибитного размера памяти, в то время как в деталях схемы кодирования EBCDIC и ASCII отличаются.
В начале 1960-х годов ATT представила цифровую телефонию на междугородних магистральных линиях. Они использовали восьмибитное кодирование по закону μ. Эти крупные вложения обещали снизить затраты на передачу восьмибитных данных.
Разработка восьмибитных микропроцессоров в 1970-х годах популяризировала этот размер памяти. Микропроцессоры, такие как Intel 8008, прямой предшественник 8080 и 8086, используемые в ранних персональных компьютерах, также могли выполнять небольшое количество операций на четырехбитные пары в байте, такие как инструкция десятичного сложения и настройки (DAA). Четырехбитовая величина часто называется полубайт, также полубайт, который удобно представляется одной шестнадцатеричной цифрой.
Термин октет используется для однозначного определения размера в восемь битов. Он широко используется в определениях протокола .
Исторически термин октада или октад также использовался для обозначения восьми битов, по крайней мере, в Западной Европе; однако это использование больше не является распространенным. Точное происхождение термина неясно, но его можно найти в британских, голландских и немецких источниках 1960-х и 1970-х годов, а также в документации по мэйнфреймам Philips.
Символ единицы для байта указан в IEC 80000-13, IEEE 1541 и Metric Interchange Format в качестве символа верхнего регистра B. Напротив, IEEE 1541 определяет символ нижнего регистра b как символ для бита, а IEC 80000-13 и Metric-Interchange- Формат указывает символ как бит, обеспечивая устранение неоднозначности от B для байта.
В Международной системе количеств (ISQ), B - это символ bel, единицы логарифмического отношения степеней, названной в честь Александра Грэхема Белла., что противоречит спецификации IEC. Однако существует небольшая опасность путаницы, поскольку ремень используется редко. Он используется в основном в своей десятичной доле, децибел (дБ), для измерений мощности сигнала и уровня звукового давления, а единица измерения - одна десятая часть байт, децибайт и другие дроби используются только в производных единицах, таких как скорость передачи.
Строчная буква o для октета определена как символ для октета в IEC 80000-13 и обычно используется в таких языках, как французский и румынский., а также комбинируется с метрическими префиксами для кратных чисел, например ko и Mo.
Использование термина октада (e) для восьми битов больше не является обычным явлением.
Несмотря на усилия по стандартизации, неоднозначность значений префиксов СИ (или метрических), используемых с единичный байт, особенно в отношении префиксов кило (k или K), мега (M) и гига (G). Компьютерная память имеет двоичную архитектуру, в которой кратные числа выражаются в степени 2. В некоторых областях промышленности программного обеспечения и компьютерного оборудования двоичный префикс используется для байтов и битов, в то время как производители компьютерных запоминающих устройств практикуют соблюдение десятичных кратных единиц СИ. Например, емкость жесткого диска компьютера в 100 гигабайт указывается, когда диск содержит 100 миллиардов байтов дискового пространства, что эквивалентно примерно 93 гигабайтам с использованием двоичного префикса gibi.
В то время как числовая разница между десятичной и двоичной интерпретациями относительно мала для префиксов kilo и mega, для префикса yotta она превышает 20%.. График линейного журнала показывает разницу в зависимости от размера хранилища до эксабайта.
Многие языки программирования определили тип данных байт.
В языках программирования C и C ++ байт определяется как «адресуемая единица хранения данных, достаточно большая, чтобы вместить любой член базового набора символов среды выполнения» (пункт 3.6 стандарта C). Стандарт C требует, чтобы интегральный тип данных unsigned char содержал как минимум 256 различных значений и был представлен как минимум восемью битами (пункт 5.2.4.2.1). Различные реализации C и C ++ резервируют 8, 9, 16, 32 или 36 бит для хранения байта. Кроме того, стандарты C и C ++ требуют, чтобы между двумя байтами не было пробелов. Это означает, что каждый бит в памяти является частью байта.
Примитивный тип данных Java byte
всегда определяется как состоящий из 8 битов и являющийся типом данных со знаком, содержащий значения от −128 до 127.
Языки программирования.NET, такие как C #, определяют как беззнаковый байт
, так и подписанный sbyte
, содержащие значения от 0 до 255 и От −128 до 127 соответственно.
В системах передачи данных байт определяется как непрерывная последовательность битов в последовательном потоке данных, представляющем наименьшую выделенную единицу данных. Единица передачи может включать в себя стартовые биты, стоповые биты или биты четности и, следовательно, может варьироваться от 7 до 12 битов, чтобы содержать один 7-битный код ASCII.