Классификация | 6-битные буквенно - цифровые базовые латинские кодировки |
---|---|
Преемник | EBCDIC |
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 + 2BD2 ⯒ GROUP MARK . Функционально это соответствует символу 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 символов (не считая пробелов, которые специально обрабатываются принтером), как символы +
, -
и *
дублируются.
Набор символов Fortran [ править ]
Были некоторые вариации; В 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 .
- ^ a b Руководство по эксплуатации электронной машины обработки данных 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 .