Шестибитный код символа — это кодировка символов, разработанная для использования на компьютерах с длиной слова , кратной 6. Шесть бит могут кодировать только 64 различных символа, поэтому эти коды обычно включают только заглавные буквы, цифры, некоторые знаки препинания и иногда управляющие символы. Формат магнитной ленты с 7 дорожками был разработан для хранения данных в таких кодах вместе с дополнительным битом четности .
Ранний шестибитный двоичный код использовался для шрифта Брайля — системы чтения для слепых, разработанной в 1820-х годах.
Самые ранние компьютеры работали только с числовыми данными и не предусматривали символьные данные. Шестибитный BCD с несколькими вариантами использовался IBM на ранних компьютерах, таких как IBM 702 в 1953 году и IBM 704 в 1954 году. [1] : стр.35 Шестибитные кодировки были заменены 8-битным кодом EBCDIC , начиная с 1964 года, когда System/360 стандартизировала 8-битные байты . Существует несколько вариантов этого типа кода (см. ниже).
Шестибитные коды символов, как правило, пришли на смену пятибитному коду Бодо и предшествовали семибитному коду ASCII .
Шестибитные коды могли кодировать более 64 символов с помощью символов Shift Out и Shift In , по сути, объединяя два различных набора из 62 символов и переключаясь между ними. Например, популярный коммуникационный терминал IBM 2741 поддерживал различные наборы символов до 88 печатных символов плюс управляющие символы.
Специальное 6-уровневое расширение 5-уровневого Международного Телеграфного Алфавита использовалось для дистанционного управления линотипными машинами, начиная примерно с 1930 года. К 1950 году оно широко использовалось телеграфными службами для отправки предварительно отформатированных новостных статей в участвующие газеты. Оно поддерживало 90 печатных символов линотипной машины, а также пробельные символы .
Код TTS имел две пары кодов сдвига, что позволяло в общей сложности четыре состояния сдвига. Первый действовал во многом как клавиша Shift на клавиатуре и выбирал между строчными буквами и цифрами, а также заглавными буквами и символами. Вторая пара кодов сдвига Linotype "нижняя направляющая" и "верхняя направляющая" выбирала альтернативный (обычно курсивный) шрифт.
Шестибитный код BCD был адаптацией кода перфокарт к двоичному коду . IBM применила термины двоично-десятичный и BCD к вариациям буквенно-цифровых кодов BCD , которые использовались в большинстве ранних компьютеров IBM, включая IBM 1620 , IBM 1400 series и недесятичные архитектурные элементы IBM 700/7000 series .
Шестибитный код также использовался в базах данных COBOL, где информация о конце записи хранилась отдельно. [ необходима цитата ]
Шестибитный код с добавленным битом нечетности используется на дорожке 1 карт с магнитной полосой , как указано в стандарте ISO/IEC 7811-2 .
Популярным шестибитным кодом был DEC SIXBIT. Это просто коды символов ASCII от 32 до 95, закодированные как 0 до 63 путем вычитания 32 (т. е. столбцы 2, 3, 4 и 5 таблицы ASCII (16 символов в столбце), смещенные в столбцы 0-3 путем вычитания 2 из старших бит); он включает пробел, знаки препинания, цифры и заглавные буквы, но не содержит управляющих символов. Поскольку он не включал управляющих символов, даже конца строки, он не использовался для общей обработки текста. Однако шестисимвольные имена, такие как имена файлов и символы ассемблера, могли храниться в одном 36-битном слове PDP-10 , и три символа помещались в каждое слово PDP-1 , а два символа помещались в каждое слово PDP-8 . См. таблицу ниже.
Другой, менее распространенный вариант получается путем простого удаления старшего бита кода ASCII в диапазоне 32 - 95 (коды 32 - 63 остаются на своих позициях, более высокие значения имеют 64 вычитаемыми из них). Такой вариант иногда использовался на PDP-8 компании DEC (1965).
Шестибитный код, аналогичный коду DEC, но заменяющий несколько знаков препинания наиболее полезными управляющими символами, включая SO/SI , что позволяет расширять код, был определен как ECMA -1 в 1963 году (см. ниже).
FIELDATA представлял собой семибитный код (с опциональной четностью), из которого формально были определены только 64 кодовые позиции (занимающие шесть бит). [2] Вариант использовался компьютерами UNIVAC серии 1100. [3] Рассматривая код как шестибитный, эти системы использовали 36-битное слово (способное хранить шесть таких сокращенных символов FIELDATA). [4]
Символы Брайля представлены с помощью шести позиций точек, расположенных в прямоугольнике. Каждая позиция может содержать выпуклую точку или нет, поэтому Брайль можно считать шестибитным двоичным кодом. Некоторые более современные системы Брайля добавляют дополнительные две точки, что делает эти системы восьмибитным кодом.
Передача двоичных данных через системы, которые предназначены только для текста, иногда может вызывать проблемы. Например, электронная почта исторически поддерживала только 7-битные коды ASCII и удаляла 8-й бит, тем самым повреждая двоичные данные, отправленные напрямую через любой проблемный почтовый сервер. Другие системы могут вызывать проблемы, неправильно интерпретируя управляющие символы во время хранения или передачи. Существует ряд схем для упаковки 8-битных данных в текстовые представления, которые могут проходить через системы текстовой почты для декодирования в пункте назначения. Примерами 6-битных подмножеств символов, используемых для упаковки двоичных данных, являются Uuencode и Base64 . Эти наборы не содержат управляющих символов (только печатные цифры, буквы, некоторые знаки препинания и, возможно, пробел) и позволяют передавать данные через любой носитель, который также способен передавать текст, понятный человеку.
Компания IBM, доминировавшая в области коммерческой обработки данных, использовала различные шестибитные коды, которые были привязаны к набору символов, используемому на перфокартах , см. BCD (кодировка символов) .
Ниже показаны другие коды символов поставщиков и их эквиваленты в Unicode .
В следующей таблице показано расположение символов с шестнадцатеричным значением, соответствующим символом ASCII, 6-битными кодами Брайля (комбинациями точек), глифами Брайля Unicode и общим значением (фактическое значение может меняться в зависимости от контекста). [6] [7]