Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 применила термины двоично-десятичный код и двоично -десятичный код к вариациям двоично-десятичных букв, используемых в большинстве ранних компьютеров IBM, включая IBM 1620 , серию IBM 1400 и недесятичную архитектуру.члены серии IBM 700/7000 .

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

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

Специальные символы [ править ]

Знак « Метка записи» или « Метка записи» (обозначенный как ‡) - это знак, используемый для обозначения конца записи . [7] BCD-код для этого символа - 32 8 в некоторых вариантах BCD. Ближайший эквивалент Юникода U + 29E7ТЕРМОДИНАМИЧЕСКОЕ , но не во многих шрифтах, поэтому U + 2021двойной 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.

Товарный знак , напротив, не КОР характер. Скорее, это бит флага, используемый для обозначения конца слова на некоторых компьютерах с переменной длиной слова, таких как 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 символов, так как они были основаны на шаблонах перфорации карт и наборах символов принтеров, ни один из которых не поощрял использование числа символов, равного степени двойки.

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

Код IBM 704 BCD [ править ]

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

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

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

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

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

Набор символов Fortran [ править ]

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

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

Код IBM 1401 BCD [ править ]

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

Код GBCD [ править ]

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

BCD код Burroughs B5500 [ править ]

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

Кодовая страница 353 [ править ]

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

В 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 .

См. Также [ править ]

  • Десятичное число с двоичным кодом
  • Шестибитный символьный код
  • EBCDIC
  • SQUOZE

Заметки [ править ]

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

Ссылки [ править ]

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

Дальнейшее чтение [ править ]

  • Операционная система - Операционная система GCOS 8 - Руководство программиста - Инструкции по сборке серии Bull NovaScale 9000 - GCOS 8 (PDF) . Bull SA CEDOC . Ноябрь 2003 г. 67 A2 RJ78 REV00. Архивировано из оригинального (PDF) 12 февраля 2015 года.
  • Бонтен, Джо Х.М. (2009-03-08) [2007]. «Форматы данных в старых 48- и 36-битных компьютерах: шестибитные символы» . Архивировано 16 июня 2016 года . Проверено 16 июня 2016 .