BCD ("двоично-десятичный код "), также называемый буквенно-цифровым двоично-десятичным , буквенно-цифровым двоично- десятичным , двоично-десятичным кодом обмена , [1] или BCDIC , [1], представляет собой семейство представлений цифр, прописных латинских букв, а также некоторых специальных и управляющих символов в виде шестибитные коды символов .
Классификация | 6-битные буквенно - цифровые базовые латинские кодировки |
---|---|
Преемник | EBCDIC |
В отличие от более поздних кодировок, таких как 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. Ближайший эквивалент Unicode -U + 29E7 ⧧ ТЕРМОДИНАМИЧЕСКИЙ , но он не встречается во многих шрифтах, поэтомуU + 2021 ‡ Вместо него часто используется ДВОЙНОЙ КИНЖАЛ . Функционально это соответствуетсимволуEBCDIC IRS (ASCII RS ), X'1E '.
Знак группы или знак группы (представленный как) - это символ, используемый для обозначения начала или конца группы связанных полей. [8] BCD-код для этого символа - 77 8 в некоторых вариантах BCD. Групповой знак был предложен для стандартизации Unicode в 2015 г. [9] и был присвоен значениюU + 2BD2 ⯒ ГРУППОВАЯ МАРКА . Функционально это соответствуетсимволуEBCDIC IGS (ASCII GS ), X'1D '. Сейчас он находится в Unicode 10.0 на этом месте, но его поддерживают только шрифты Symbola и Unifont.
Товарный знак , напротив, не КОР характер. Скорее, это бит флага, используемый для обозначения конца слова на некоторых компьютерах с переменной длиной слова, таких как IBM 1401 .
Варианты кода BCD
Существует множество различных версий шестибитного кода BCD. Есть три основных категории различий:
- Отображение пробелов зоны в старшие биты. Все коды преобразуют пробивки без зон в битовую комбинацию 00, но некоторые кодируют пробивки зоны в порядке 12-11-0, сохраняя алфавитный порядок, в то время как другие используют порядок 0-11-12, что приводит к частично инвертированному алфавиту.
- Обработка цифры 0. При прямом переводе из перфорированной формы пробел помещается перед цифрами 1–9 и кодируется 0 в другом месте. Все коды имеют специальную обработку, которая либо переводит цифру 0 в двоичный код с полным нулем (и перемещает пробел в другое место), либо дает ему двоичный код 001010 (десятичный 10) и использует перфорацию 8 + 2 в другом месте.
- Назначение специальных символов. Символы, присвоенные кодам, выходящим за рамки основного буквенно-цифрового набора, сильно различались даже в пределах одной модели компьютера.
В «испаноязычных странах» символа «Ñ» не было в исходной системе, поэтому большинство производителей: Bull, NCR и Control Data выбрали «@» , но при слиянии баз данных в 7-битную систему возникла несогласованность. Код ASCII, поскольку в этой системе кодирования был выбран символ «/» , в результате чего для одного и того же символа были получены два разных кода.
Примеры кодов BCD
На следующих диаграммах показаны числовые значения символов BCD в шестнадцатеричной системе счисления (base-16), поскольку это наиболее четко отражает структуру 4-битной десятичной двоичной кодировки плюс два дополнительных бита. Например, код для «A» в строке 3x и столбце x1 - это шестнадцатеричный код 31 или двоичный код «11 0001».
48-значный код BCD
В первых версиях BCDIC было 48 символов, так как они были основаны на шаблонах перфорации карт и наборах символов принтеров, ни один из которых не поощрял использование числа символов, равного степени двойки.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | |||
1x | / | S | Т | U | V | W | Икс | Y | Z | , | % | |||||
2x | - | J | K | L | M | N | О | п | Q | р | $ | * | ||||
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | . | ⌑ |
Это было основано на 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]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ||||
1x | & | А | B | C | D | E | F | грамм | ЧАС | я | . | ⌑ | ||||
2x | - | J | K | L | M | N | О | п | Q | р | $ | * | ||||
3x | космос | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | % |
( а также редко использовались символы, которые соответствовали соглашению о перфокартах цифры 0 с перфорированным знаком в строках 12 или 11.)
В следующей таблице показаны присвоения кодов для используемого принтера типа 716, начиная с компьютера IBM 704 и заканчивая компьютером 7094. [11] Интерфейс 704 [b] отправил на этот принтер строки виртуальных перфокарт, два слова (72 бита) в время, поэтому отображение 6-битных символов BCD было выполнено с помощью программного обеспечения, а не было встроено в принтер.
Зональный удар | Цифровой удар | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 8 + 3 | 8 + 4 | ||
Никто | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | - |
12 | + | А | B | C | D | E | F | грамм | ЧАС | я | . | ⌑ |
11 | - | J | K | L | M | N | О | п | Q | р | $ | * |
0 | 0 | / | S | Т | U | V | W | Икс | Y | Z | , | % |
Это репертуар из 45 символов (не считая пробелов, которые специально обрабатываются принтером), как символы +
, -
и *
дублируются.
Набор символов Фортрана
Были некоторые вариации; В IBM 704 Fortran был другой набор специальных символов (с сохранением только дублированного знака минус). [12]
Зональный удар | Цифровой удар | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 8 + 3 | 8 + 4 | ||
Никто | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | знак равно | - |
12 | + | А | B | C | D | E | F | грамм | ЧАС | я | . | ) |
11 | - | J | K | L | M | N | О | п | Q | р | $ | * |
0 | 0 | / | S | Т | U | V | W | Икс | Y | Z | , | ( |
Аналогичный код был использован для IBM 709 , 7090 и 7094 наследников, [13] , но с некоторыми из специальных символов переназначить:
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | знак равно | " | ||||
1x | & | А | B | C | D | E | F | грамм | ЧАС | я | . | ) | ||||
2x | - | J | K | L | M | N | О | п | Q | р | $ | * | ||||
3x | космос | / | S | Т | U | V | W | Икс | Y | Z | ± | , | ( |
Код IBM 1401 BCD
IBM 1401 использовали все нулевой код для заготовки, и переместил цифру ноль в коде 10. Она определила формы символов для всех возможных значений, для целей документирования, [14] , но только 48 из 63 без пробелов были для печати, и были значительные различия в том, как другие кодовые значения (заштрихованные в таблице ниже) отображались на практике. Даже другие символы различались в разных доступных цепочках печати для принтера IBM 1403 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ¢ | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | % | знак равно | ' | " |
2x | - | J | K | L | M | N | О | п | Q | р | ! | $ | * | ) | ; | Δ |
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | ? | . | ⌑ | ( | < | ⯒ |
Код GBCD
Ниже приведена таблица кода GBCD GE / Honeywell, варианта BCD. [15]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ | # | @ | : | > | ? |
1x | космос | А | B | C | D | E | F | грамм | ЧАС | я | & | . | ] | ( | < | \ |
2x | ^ | J | K | L | M | N | О | п | Q | р | - | $ | * | ) | ; | ' |
3x | + | / | S | Т | U | V | W | Икс | Y | Z | _ | , | % | знак равно | " | ! |
BCD код Burroughs B5500
В следующей таблице показаны присвоения кодов для компьютера Burroughs B5500 , иногда называемые BIC (код обмена Burroughs). [16]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ? | : | > | ≥ |
1x | + | А | B | C | D | E | F | грамм | ЧАС | я | . | [ | & | ( | < | ← |
2x | × | J | K | L | M | N | О | п | Q | р | $ | * | - | ) | ; | ≤ |
3x | космос | / | S | Т | U | V | W | Икс | Y | Z | , | % | ≠ | знак равно | ] | " |
Кодовая страница 353
Кодовая страница BCDIC-A была назначена кодовой страницей 353 , также известной как CP353 . Некоторые символы на этой кодовой странице не в Юникоде. [Наличие двух символов #, но отсутствия символа + в этой таблице кажется неправильным.] [ Необходима ссылка ]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ␢ | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | % | γ | \ | ⧻ |
2x | - | J | K | L | M | N | О | п | Q | р | ! | # | * | ] | ; | Δ |
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | ? | . | ⌑ | [ | < | ⯒ |
В 0x1A стоит отметка рекорда, которая не предлагалась отдельно из-за ее сходства с двойным кинжалом. В 0x3F это групповой знак.
Кодовые страницы PTTC / BCD
У PTTC / BCD было 5 вариантов. Было пять кодовых страниц. Они показаны ниже. Стандартная опция PTTC / BCD была назначена как кодовая страница 355 или CP355 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | γ | |||
2x | - | J | K | L | M | N | О | п | Q | р | < | $ | ||||
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | ) | . |
Опция PTTC / BCD H была назначена как кодовая страница 357 или CP357 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | знак равно | ||||
1x | ' | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | ||||
2x | - | J | K | L | M | N | О | п | Q | р | ! | $ | ||||
3x | + | А | B | C | D | E | F | грамм | ЧАС | я | ? | . |
Вариант соответствия PTTC / BCD был назначен как кодовая страница 358 или CP358 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ||||
1x | ! | / | S | Т | U | V | W | Икс | Y | Z | ‡ | , | ||||
2x | - | J | K | L | M | N | О | п | Q | р | < | ; | ||||
3x | знак равно | А | B | C | D | E | F | грамм | ЧАС | я | > | . |
Опция PTTC / BCD Monocase была назначена как кодовая страница 359 или CP359 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | Т | U | V | W | Икс | Y | Z | , | |||||
2x | - | J | K | L | M | N | О | п | Q | р | $ | |||||
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | . |
Опция PTTC / BCD Duocase была назначена как кодовая страница 360 или CP360 .
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | Т | U | V | W | Икс | Y | Z | , | |||||
2x | - | J | K | L | M | N | О | п | Q | р | $ | |||||
3x | & | А | B | C | D | E | F | грамм | ЧАС | я | . |
Смотрите также
- Десятичное число с двоичным кодом
- Шестибитный символьный код
- EBCDIC
- SQUOZE
Заметки
- ^ На самом деле существует несколько кодов карт, например, к 1964 году существовало десять версий IBM 026 с немного разными наборами символов.
- ^ Интерфейс, например, на 7090, отличается, хотя программное обеспечение по-прежнему должно выполнять отображение.
Рекомендации
- ^ 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]
- ^ Пью, Эмерсон У .; Хайде, Ларс. «ЗВЕЗДЫ: Оборудование для перфокарт» . Сеть глобальной истории IEEE. Архивировано из оригинала на 2012-05-11 . Проверено 9 июня 2012 .
- ^ Пью, Эмерсон В. (1995). Построение IBM: формирование и промышленность и ее технологии . MIT Press . С. 50 –51. ISBN 978-0-262-16147-3.
- ^ Джонс, Дуглас В. «Коды перфокарт» . Проверено 1 января 2014 .
- ^ Системы обработки информации Burroughs B5500: Справочное руководство (PDF) . Корпорация Берроуз . 1964 г.
- ^ Control Data Corporation (1965). Коды / данные управления компьютерной системы 6600 (PDF) .
- ^ «Рекорд-марка» . Энциклопедия . Журнал ПК . Проверено 9 апреля 2016 .
- ^ «групповой знак» . Encyclopedia.com . Проверено 9 апреля 2016 .
- ^ Ширрифф, Кен. «Предложение о добавлении символа Групповой Знак» (PDF) . unicode.org . Проверено 9 апреля 2016 .
- ^ а б Руководство по эксплуатации электронной машины обработки данных IBM 704 (PDF) . IBM . 1955. с. 35. Форма 24-6661-2 . Проверено 22 апреля 2017 .
- ^ Руководство по эксплуатации электронной машины обработки данных IBM 704 (PDF) . IBM . 1955. с. 58. Форма 24-6661-2 . Проверено 22 апреля 2017 .
- ^ «Система автоматического кодирования Fortran для IBM 704» (PDF) . IBM . 1956-10-15. п. 49 . Проверено 15 сентября 2015 .
- ^ Харпер, Джек (2001-08-21). «Представление символов IBM 7090/94» . Проверено 22 апреля 2017 .
- ^ Система обработки данных IBM 1401: Справочное руководство (PDF) . IBM . Апрель 1962 г. с. 170. A24-1403-5. Архивировано из оригинального (PDF) 14 марта 2012 года.
- ^ «Раздел: Таблицы символов в компьютерах BULL» (PDF) . Архивировано из оригинального (PDF) 08.07.2011 . Проверено 15 ноября 2010 .
- ^ Расширенное справочное руководство по алгоритму Алгола по системам обработки информации 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 .