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 и недесятичные элементы архитектуры серий IBM 700/7000 .

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

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

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

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

Groupmark или Group mark symbol (представленный как ) — это символ, используемый для обозначения начала или конца группы связанных полей. [8] BCD-код этого символа — 77 8 в некоторых вариантах BCD. Groupmark был предложен для стандартизации 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-символьный код BCD

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

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

Код IBM 1401 BCD

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

Код страницы 353

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

В точке 0x1A находится рекордная отметка, в точке 0x3F — групповая отметка.

Код страницы 354

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

В точке 0x1A находится рекордная отметка, в точке 0x3F — групповая отметка.

Страницы кодов PTTC/BCD

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

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

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

Варианту PTTC/BCD Monocase была присвоена кодовая страница 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 компании GE/Honeywell, варианта BCD. [16]

Код BCD Берроуза B5500

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

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

Примечания

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

Ссылки

  1. ^ abcde Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (1-е изд.). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. LCCN  77-90165. Архивировано (PDF) из оригинала 2016-05-26 . Получено 2017-04-22 .[1]
  2. ^ Pugh, Emerson W.; Heide, Lars. "STARS:Punched Card Equipment". IEEE Global History Network. Архивировано из оригинала 2012-05-11 . Получено 2012-06-09 .
  3. ^ Pugh, Emerson W. (1995). Building IBM: Shaping and Industry and Its Technology . MIT Press . стр. 50–51. ISBN 978-0-262-16147-3.
  4. ^ Джонс, Дуглас В. "Коды перфокарт" . Получено 01.01.2014 .
  5. ^ Burroughs B5500 Information Processing Systems: Reference Manual (PDF) . Burroughs Corporation . 1964. Архивировано из оригинала (PDF) 2020-07-29 . Получено 2012-06-08 .
  6. ^ Control Data Corporation (1965). Коды/Control Data 6600 Computer System (PDF) .
  7. ^ "Record-mark". Энциклопедия . Журнал PC . Получено 2016-04-09 .
  8. ^ "групповой знак". Encyclopedia.com . Получено 2016-04-09 .
  9. ^ Ширрифф, Кен. "Предложение о добавлении символа групповой метки" (PDF) . unicode.org . Получено 2016-04-09 .
  10. ^ IBM 1401 Data Processing System: Reference Manual (PDF) . IBM . Апрель 1962. стр. 170. A24-1403-5. Архивировано из оригинала (PDF) 2012-03-14.
  11. ^ "Systems i Software Globalization cp00353z" (PDF) . www-03.ibm.com . Архивировано из оригинала (PDF) 2013-01-21 . Получено 2022-06-30 .
  12. ^ https://ccsids.net/ccsids.html#ccsid-354. {{cite web}}: Отсутствует или пусто |title=( помощь )
  13. ^ abc IBM 704 electronic data-processing machine manual of operation (PDF) . IBM . 1955. стр. 35, 58. Форма 24-6661-2 . Получено 22.04.2017 .
  14. ^ "Автоматическая система кодирования Fortran для IBM 704" (PDF) . IBM . 1956-10-15. стр. 49 . Получено 2015-09-15 .
  15. ^ Харпер, Джек (21 августа 2001 г.). "Представление символов IBM 7090/94" . Получено 22 апреля 2017 г.
  16. ^ "Раздел: Таблицы символов в компьютерах BULL" (PDF) . Архивировано из оригинала (PDF) 2011-07-08 . Получено 2010-11-15 .
  17. ^ Burroughs B 5500 Information Processing Systems Extended Algol Reference Manual (PDF) . 1966. стр. B-1.

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