stringtranslate.com

BCD (кодировка символов)

BCD ( двоично-десятичное число ), также называемое буквенно-цифровым BCD , буквенно-цифровым BCD , кодом обмена BCD , [1] или BCDIC , [1] представляет собой семейство представлений цифр, прописных латинских букв, а также некоторых специальных и управляющих символов в виде шести- битовые коды символов .

В отличие от более поздних кодировок, таких как ASCII , коды BCD не были стандартизированы. Разные производители компьютеров и даже разные линейки продуктов одного и того же производителя часто имели свои варианты, а иногда и уникальные символы. Другие шестибитные кодировки с совершенно другими преобразованиями, такие как некоторые варианты FIELDATA [1] или Transcode , иногда неправильно называют BCD.

Многие варианты BCD кодируют символы от «0» до «9» как соответствующие двоичные значения.

История

Технически, двоично-десятичное число описывает кодирование десятичных чисел, где каждая десятичная цифра представлена ​​фиксированным количеством бит, обычно четырьмя.

С выпуском карты IBM в 1928 году компания IBM создала код [a], способный представлять буквенно-цифровую информацию, [2] позже принятый другими производителями. Этот код представляет цифры 0–9 одним ударом и использует несколько ударов для букв верхнего регистра и специальных символов. [3] Буква имеет две отметки (зона [12,11,0] + цифра [1–9]); большинство специальных символов имеют два или три символа (зона [12,11,0 или нет] + цифра [2–7] + 8).

Код BCD представляет собой адаптацию кода перфокарты к шестибитному двоичному коду путем кодирования рядов цифр (девять строк плюс неперфорированные) в младшие четыре бита, а строк зон (три строки плюс неперфорированные) в старшие. два бита. [4] Цифра ноль (одиночный удар в строке 0) обычно обрабатывается особым образом, а цифровой код был расширен до значений от 10 до 15 путем объединения цифры в диапазоне 2–7 с ударом в строке 8. IBM применила термины «двоично-десятичный код» и «BCD» к вариантам буквенно-цифрового представления BCD , использовавшимся в большинстве ранних компьютеров IBM, включая IBM 1620 , IBM 1400 series и члены недесятичной архитектуры серии IBM 700/7000 .

Среди поставщиков, использующих BCD, были Burroughs , [5] Bull , CDC , [6] IBM , General Electric (компьютерное подразделение было куплено Honeywell в 1969 году), NCR , Siemens и SperryUNIVAC .

IBM анонсировала 8-битный расширенный двоично-десятичный код обмена (EBCDIC), основанный на BCDIC, в 1964 году, выпустив линейку System/360 .

Специальные символы

Символ Recordmark или знак записи (представленный как ‡) — это символ , используемый для обозначения конца записи . [7] BCD-код этого символа — 32 8 в некоторых вариантах BCD. Ближайший эквивалент Unicode — U+29E7THERMODYNAMIC , но он встречается не во многих шрифтах, поэтому вместо него часто используется U+2021DOUBLE DAGGER . Функционально это соответствует символу EBCDIC IRS (ASCII RS ), X'1E'.

Символ Groupmark или Group mark (представленный как ) — это символ, используемый для обозначения начала или окончания группы связанных полей. [8] BCD-код этого символа — 77 8 в некоторых вариантах BCD. Групповой знак был предложен для стандартизации Unicode в 2015 году [9] и ему было присвоено значение U+2BD2GROUP MARK . Функционально это соответствует символу EBCDIC IGS (ASCII GS ), X'1D'. Сейчас он находится на этой позиции в Unicode 10.0, но его поддерживают только шрифты Symbola и Unifont.

Wordmark , напротив, не является символом BCD. Скорее, это бит-флаг, используемый для обозначения конца слова на некоторых компьютерах с переменной длиной слова, таких как IBM 1401 .

Варианты BCD-кода

Существует множество различных версий шестибитного BCD-кода. Есть три основные категории различий:

  1. Отображение зонных ударов в старшие биты. Все коды переводят отсутствие меток зон в битовую комбинацию 00, но некоторые кодируют метки зон в порядке 12-11-0, сохраняя алфавитный порядок, в то время как другие используют порядок 0-11-12, что приводит к частично перевернутому алфавиту.
  2. Обработка цифры 0. При прямом переводе из перфорированной формы пробел будет помещен перед цифрами 1–9 и закодирован 0 в начале строки с буквой S в ней. Все коды имеют некоторую специальную обработку, которая либо преобразует цифру 0 в двоичный код, состоящий из всех нулей (и перемещает пробел в другое место), либо присваивает ей двоичный код 001010 (десятичное 10) и перемещает цифру 8+2 в другое место.
  3. Назначение специальных символов. Символы, присвоенные кодам, выходящим за рамки базового буквенно-цифрового набора, сильно различались даже в пределах одной модели компьютера.

В «испаноязычных странах» символа «С» не существовало в исходной системе, поэтому большинство производителей выбрали «@» : Bull, NCR и Control Data, но при объединении баз данных в 7-битную систему возникла несогласованность. Код ASCII, поскольку в этой системе кодирования был выбран символ «/» , в результате чего один и тот же символ получил два разных кода.

Примеры BCD-кодов

В следующих таблицах показаны числовые значения символов BCD в шестнадцатеричном формате (с основанием 16), поскольку это наиболее четко отражает структуру 4-битного двоично-десятичного числа плюс два дополнительных бита. Например, код «A» в строке 3x и столбце x1 — шестнадцатеричный 31 или двоичный «11 0001».

Стиль ленты

48-значный двоично-десятичный код

Первые версии BCDIC имели 48 символов, поскольку они были основаны на шаблонах перфорации карт и наборах символов принтеров, ни один из которых не предусматривал использование количества символов, равного степени двойки.

Это было основано на 40-значном коде перфокарты; исходные 37 (10 цифр, 26 букв и пробел), плюс три коммерчески важных символа, добавленные примерно в 1932 году: [1] : 67  дефис-минус, используемый для печати кредитных балансов и имен, написанных через дефис, амперсанд также используется во многих именах и адресах ( Procter & Gamble , Mr. & Mrs. Smith), а звездочка используется для печати поверх неиспользуемых полей при печати чеков .

IBM 1401 BCD-код

Вместо того, чтобы следовать представлению хранилища IBM 704, IBM 1401 следовал представлению на ленте (произошедшему от 48-символьного двоично-десятичного кода), таким образом используя нулевой код для пробела и код 10 (0x0A) для нулевой цифры. В целях документации были определены формы символов для всех возможных значений [10] , но только 48 из 63 непустых символов были пригодны для печати, и существовали значительные различия в том, как изображались другие значения кода (заштрихованы в таблице ниже). на практике. Даже другие символы различались в разных доступных цепочках печати для принтера IBM 1403 .

Кодовая страница 353

Кодовая страница BCDIC-A была назначена как кодовая страница 353 , также известная как CP353 . Некоторые символы на этой кодовой странице не входят в Юникод. (Дублирование символа «#» можно найти в собственной документации IBM и здесь не является ошибкой. [11] ).

По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.

Кодовая страница 354

Кодовая страница BCDIC-B была назначена как кодовая страница 354 , также известная как CP354 . [12] Некоторые символы на этой кодовой странице не входят в Юникод.

По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.

Кодовые страницы PTTC/BCD

У PTTC/BCD было 5 вариантов. Было пять кодовых страниц. Они показаны ниже. Стандартной опции PTTC/BCD была присвоена кодовая страница 355 или CP355 .

Опции PTTC/BCD H была присвоена кодовая страница 357 или CP357 .

Опция соответствия PTTC/BCD была назначена как кодовая страница 358 или CP358 .

Опция Monocase PTTC/BCD была назначена как кодовая страница 359 или CP359 .

Опции PTTC/BCD Duocase была присвоена кодовая страница 360 или CP360 .

Стиль хранения IBM 704

IBM 704 BCD-код

IBM 704 изменил порядок BCDIC-кода, чтобы обеспечить нормальный алфавитный порядок внутренней сортировки: 0 перед 1 и A перед Z. Он мог автоматически переводить между этой внутренней формой и более ранней BCDIC при чтении и записи магнитных лент . [13] : 35 

В следующей таблице показаны назначения кодов для компьютера IBM 704 . Неназначенные позиции кода отображаются как пробелы. [13] : 35 

(+0и0были редко используемыми символами, которые соответствовали стандарту перфокарты: цифра 0 с переперченным знаком в строках 12 или 11.)

В следующей таблице показаны назначения кодов для принтера типа 716, который использовался начиная с компьютера IBM 704 и до 7094. [13] : 58  Интерфейс 704 [b] отправлял на этот принтер строки виртуальных перфокарт, два слова (72 бита). ) одновременно, поэтому преобразование 6-битных символов BCD выполнялось программным обеспечением и не было встроено в принтер.

Это репертуар из 45 символов (не считая пробела, который специально обрабатывается принтером), так как символы +, -и *дублируются.

Набор символов Фортрана

Были некоторые вариации; IBM 704 Fortran имел другой набор специальных символов (сохранялся только дублирующийся знак минус). [14]

Похожий код использовался для преемников IBM 709 , 7090 и 7094 , [15] , но с переназначением некоторых специальных символов:

GBCD-код

Ниже приведена таблица кода GBCD компании GE/Honeywell, варианта BCD. [16]

BCD-код Берроуза B5500

В следующей таблице показаны назначения кодов для компьютера Burroughs B5500 , иногда называемого BIC (код обмена Burroughs). [17]

Смотрите также

Примечания

  1. ^ На самом деле существует несколько кодов карт, например, к 1964 году существовало десять версий IBM 026 с немного разными наборами символов.
  2. ^ Интерфейс, например, у 7090 другой, хотя программное обеспечение все равно должно выполнять сопоставление.

Рекомендации

  1. ^ abcde Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF) . Серия системного программирования (1-е изд.). ISBN издательской компании Addison-Wesley, Inc.  0-201-14460-3. LCCN  77-90165. Архивировано (PDF) из оригинала 26 мая 2016 г. Проверено 22 апреля 2017 г.[1]
  2. ^ Пью, Эмерсон В.; Хайде, Ларс. «ЗВЕЗДЫ: Оборудование для перфокарт». Сеть глобальной истории IEEE. Архивировано из оригинала 11 мая 2012 г. Проверено 9 июня 2012 г.
  3. ^ Пью, Эмерсон В. (1995). Создание IBM: формирование промышленности и ее технологий . МТИ Пресс . стр. 50–51. ISBN 978-0-262-16147-3.
  4. ^ Джонс, Дуглас В. «Коды перфокарт» . Проверено 1 января 2014 г.
  5. ^ Системы обработки информации Burroughs B5500: Справочное руководство (PDF) . Корпорация Берроуз . 1964. Архивировано из оригинала (PDF) 29 июля 2020 г. Проверено 8 июня 2012 г.
  6. ^ Корпорация Control Data (1965). Коды/управляющие данные Компьютерная система 6600 (PDF) .
  7. ^ "Рекорд-марка". Энциклопедия . Журнал ПК . Проверено 9 апреля 2016 г.
  8. ^ «Знак группы». Энциклопедия.com . Проверено 9 апреля 2016 г.
  9. ^ Ширрифф, Кен. «Предложение о добавлении символа знака группы» (PDF) . unicode.org . Проверено 9 апреля 2016 г.
  10. ^ Система обработки данных IBM 1401: Справочное руководство (PDF) . ИБМ . Апрель 1962 г. с. 170. А24-1403-5. Архивировано из оригинала (PDF) 14 марта 2012 г.
  11. ^ «Системы и глобализация программного обеспечения cp00353z» (PDF) . www-03.ibm.com . Архивировано из оригинала (PDF) 21 января 2013 г. Проверено 30 июня 2022 г.
  12. ^ https://ccsids.net/ccsids.html#ccsid-354. {{cite web}}: Отсутствует или пусто |title=( помощь )
  13. ^ abc Руководство по эксплуатации электронной машины обработки данных IBM 704 (PDF) . ИБМ . 1955. С. 35, 58. Форма 24-6661-2 . Проверено 22 апреля 2017 г.
  14. ^ «Система автоматического кодирования на Фортране для IBM 704» (PDF) . ИБМ . 15 октября 1956 г. п. 49 . Проверено 15 сентября 2015 г.
  15. ^ Харпер, Джек (21 августа 2001 г.). «Представление символов IBM 7090/94» . Проверено 22 апреля 2017 г.
  16. ^ «Раздел: Таблицы символов в компьютерах BULL» (PDF) . Архивировано из оригинала (PDF) 8 июля 2011 г. Проверено 15 ноября 2010 г.
  17. ^ Расширенное справочное руководство по алгоритму Algol для систем обработки информации Burroughs B 5500 (PDF) . 1966. с. Б-1.

дальнейшее чтение