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

Коды обмена BCD
Классификация6-битный буквенно-цифровой базовая латынь кодировки
ПреемникEBCDIC

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

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

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

История

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

С введением Карта IBM в 1928 году IBM создала код[а] может представлять буквенно-цифровую информацию,[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, были Берроуз,[5] Бык, CDC,[6] IBM, General Electric (компьютерное подразделение было приобретено Honeywell в 1969 г.), NCR, Сименс, и Сперри -UNIVAC.

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

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

В Отметка записи или же Отметка записи символ (представленный как ‡) - это символ, используемый для обозначения конца записывать.[7] Код BCD для этого символа - 328 в некоторых вариантах BCD. Ближайший эквивалент Unicode - U + 29E7 ТЕРМОДИНАМИЧЕСКИЙ, но это не встречается во многих шрифтах, поэтому U + 2021 ДВОЙНОЙ КИНЖАЛ вместо этого часто используется. Функционально это соответствует EBCDIC IRS символ (ASCII RS), X'1E '.

В Groupmark или же Знак группы (представлен как IBM 1401 Group Mark.GIF) - это символ, используемый для обозначения начала или конца группы связанных полей.[8] Код BCD для этого символа - 77.8 в некоторых вариантах BCD. Групповой знак был предложен для стандартизации Unicode в 2015 году,[9] и было присвоено значение U + 2BD2 ГРУППОВАЯ МАРКА. Функционально это соответствует 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 в другом месте. Все коды имеют специальную обработку, которая либо переводит цифру 0 в двоичный код с полным нулем (и перемещает пробел в другое место), либо дает ему двоичный код 001010 (десятичный 10) и использует штамп 8 + 2 в другом месте.
  3. Назначение специальных символов. Символы, присвоенные кодам, выходящим за рамки основного буквенно-цифрового набора, сильно различались даже в пределах одной модели компьютера.

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

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

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

48-значный код BCD

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

48-символьный код IBM BCDIC[1]:68
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#@
1x/SТUVWИксYZ,%
2x-JKLMNОпQр$*
3x&АBCDEFграммЧАСя.

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

Код IBM 704 BCD

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

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

Набор символов IBM 704
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x0123456789#@
1x&АBCDEFграммЧАСя+0.
2x-JKLMNОпQр0$*
3xКосмос/SТUVWИксYZ,%

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

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

Набор символов принтера IBM 716 G
Зона
ударить кулаком
Цифровой удар
1234567898+38+4
Никто*123456789+-
12+АBCDEFграммЧАСя.
11-JKLMNОпQр$*
00/SТUVWИксYZ,%

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

Набор символов Fortran

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

Набор символов Fortran для принтера IBM 716
Зона
ударить кулаком
Цифровой удар
1234567898+38+4
Никто*123456789=-
12+АBCDEFграммЧАСя.)
11-JKLMNОпQр$*
00/SТUVWИксYZ,(

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

Набор символов IBM 7090/7094
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x0123456789="
1x&АBCDEFграммЧАСя+0.)
2x-JKLMNОпQр0$*
3xКосмос/SТUVWИксYZ±,(

Код IBM 1401 BCD

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#@:>
1x¢/SТUVWИксYZ,%='"
2x-JKLMNОпQр!$*);Δ
3x&АBCDEFграммЧАСя?.(<

Код GBCD

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x0123456789[#@:>?
1xКосмосАBCDEFграммЧАСя&.](<\
2x^JKLMNОпQр-$*);'
3x+/SТUVWИксYZ_,%="!

BCD код Burroughs B5500

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x0123456789#@?:>
1x+АBCDEFграммЧАСя.[&(<
2x×JKLMNОпQр$*-);
3xКосмос/SТUVWИксYZ,%=]"

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

Кодовая страница BCDIC-A была назначена как Кодовая страница 353, также известный как CP353. Некоторые символы на этой кодовой странице не в Юникоде. [Наличие двух символов #, но отсутствия символа + в этой таблице кажется неправильным.][нужна цитата ]

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#@:>
1x/SТUVWИксYZ,%γ\
2x-JKLMNОпQр!#*];Δ
3x&АBCDEFграммЧАСя?.[<

В 0x1A стоит отметка рекорда, которая не предлагалась отдельно из-за ее сходства с двойным кинжалом. В 0x3F - это групповой знак.

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

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#
1x@/SТUVWИксYZ,γ
2x-JKLMNОпQр<$
3x&АBCDEFграммЧАСя).

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890=
1x'/SТUVWИксYZ,
2x-JKLMNОпQр!$
3x+АBCDEFграммЧАСя?.

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890'
1x!/SТUVWИксYZ,
2x-JKLMNОпQр<;
3x=АBCDEFграммЧАСя>.

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

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#
1x@/SТUVWИксYZ,
2x-JKLMNОпQр$
3x&АBCDEFграммЧАСя.

Вариант PTTC / BCD Duocase был назначен как Кодовая страница 360, или же CP360.

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xКосмос1234567890#
1x@/SТUVWИксYZ,
2x-JKLMNОпQр$
3x&АBCDEFграммЧАСя.

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

Примечания

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

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

  1. ^ а б c d е Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF). Серия системного программирования (1-е изд.). Addison-Wesley Publishing Company, Inc. ISBN  0-201-14460-3. LCCN  77-90165. ISBN  978-0-201-14460-4. Архивировано из оригинал (PDF) на 2016-05-26. Получено 2017-04-22. [1]
  2. ^ Пью, Эмерсон У .; Хайде, Ларс. "STARS: Оборудование для перфокарт". Сеть глобальной истории IEEE. Архивировано из оригинал на 2012-05-11. Получено 2012-06-09.
  3. ^ Пью, Эмерсон В. (1995). Построение IBM: формирование, промышленность и ее технологии. MIT Press. стр.50 –51. ISBN  978-0-262-16147-3.
  4. ^ Джонс, Дуглас В. «Коды перфокарт». Получено 2014-01-01.
  5. ^ Системы обработки информации Burroughs B5500: Справочное руководство (PDF). Корпорация Берроуз. 1964.
  6. ^ Корпорация Control Data (1965). Коды / управляющие данные Компьютерная система 6600 (PDF).
  7. ^ «Рекорд-марка». Энциклопедия. Журнал ПК. Получено 2016-04-09.
  8. ^ "групповой знак". Encyclopedia.com. Получено 2016-04-09.
  9. ^ Ширрифф, Кен. «Предложение о добавлении символа Групповой Знак» (PDF). unicode.org. Получено 2016-04-09.
  10. ^ а б Электронная машина обработки данных IBM 704, руководство по эксплуатации (PDF). IBM. 1955. с. 35. Форма 24-6661-2. Получено 2017-04-22.
  11. ^ Электронная машина обработки данных IBM 704, руководство по эксплуатации (PDF). IBM. 1955. с. 58. Форма 24-6661-2. Получено 2017-04-22.
  12. ^ "Система автоматического кодирования Fortran для IBM 704" (PDF). IBM. 1956-10-15. п. 49. Получено 2015-09-15.
  13. ^ Харпер, Джек (2001-08-21). "Представление символов IBM 7090/94". Получено 2017-04-22.
  14. ^ Система обработки данных IBM 1401: Справочное руководство (PDF). IBM. Апрель 1962 г. с. 170. A24-1403-5. Архивировано из оригинал (PDF) 14 марта 2012 г.
  15. ^ «Раздел: Таблицы символов в компьютерах BULL» (PDF). Архивировано из оригинал (PDF) на 2011-07-08. Получено 2010-11-15.
  16. ^ Burroughs B 5500 Information Processing Systems Extended Algol Справочное руководство (PDF). 1966. с. В-1.

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