BCD (кодировка символов) - BCD (character encoding)
Классификация | 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 или же Знак группы (представлен как ) - это символ, используемый для обозначения начала или конца группы связанных полей.[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. Есть три основных категории различий:
- Отображение пробелов зоны в старшие биты. Все коды преобразуют отсутствие зональных штрихов в битовый шаблон 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, Мистер и миссис Смит), а звездочка используется для перекрытия неиспользуемых полей при печати чеки.
Код 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 Фортран имел другой набор специальных символов (с сохранением только дублированного знака минус).[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
В следующей таблице показаны присвоения кодов для Берроуз B5500 компьютер, иногда называемый BIC (код обмена Берроуза).[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 | грамм | ЧАС | я | . |
Смотрите также
Примечания
Рекомендации
- ^ а б 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]
- ^ Пью, Эмерсон У .; Хайде, Ларс. "STARS: Оборудование для перфокарт". Сеть глобальной истории IEEE. Архивировано из оригинал на 2012-05-11. Получено 2012-06-09.
- ^ Пью, Эмерсон В. (1995). Построение IBM: формирование, промышленность и ее технологии. MIT Press. стр.50 –51. ISBN 978-0-262-16147-3.
- ^ Джонс, Дуглас В. «Коды перфокарт». Получено 2014-01-01.
- ^ Системы обработки информации Burroughs B5500: Справочное руководство (PDF). Корпорация Берроуз. 1964.
- ^ Корпорация Control Data (1965). Коды / управляющие данные Компьютерная система 6600 (PDF).
- ^ «Рекорд-марка». Энциклопедия. Журнал ПК. Получено 2016-04-09.
- ^ "групповой знак". Encyclopedia.com. Получено 2016-04-09.
- ^ Ширрифф, Кен. «Предложение о добавлении символа Групповой Знак» (PDF). unicode.org. Получено 2016-04-09.
- ^ а б Электронная машина обработки данных IBM 704, руководство по эксплуатации (PDF). IBM. 1955. с. 35. Форма 24-6661-2. Получено 2017-04-22.
- ^ Электронная машина обработки данных IBM 704, руководство по эксплуатации (PDF). IBM. 1955. с. 58. Форма 24-6661-2. Получено 2017-04-22.
- ^ "Система автоматического кодирования Fortran для IBM 704" (PDF). IBM. 1956-10-15. п. 49. Получено 2015-09-15.
- ^ Харпер, Джек (2001-08-21). "Представление символов IBM 7090/94". Получено 2017-04-22.
- ^ Система обработки данных IBM 1401: Справочное руководство (PDF). IBM. Апрель 1962 г. с. 170. A24-1403-5. Архивировано из оригинал (PDF) 14 марта 2012 г.
- ^ «Раздел: Таблицы символов в компьютерах BULL» (PDF). Архивировано из оригинал (PDF) на 2011-07-08. Получено 2010-11-15.
- ^ Burroughs B 5500 Information Processing Systems Extended Algol Справочное руководство (PDF). 1966. с. В-1.
дальнейшее чтение
- Операционная система - Операционная система GCOS 8 - Руководство программиста - Инструкции по сборке серии Bull NovaScale 9000 - GCOS 8 (PDF). Bull S.A. CEDOC. Ноябрь 2003 г. 67 A2 RJ78 REV00. Архивировано из оригинал (PDF) на 2015-02-12.
- Бонтен, Джо Х. М. (2009-03-08) [2007]. «Форматы данных в старых 48- и 36-битных компьютерах: шестибитные символы». В архиве из оригинала от 16.06.2016. Получено 2016-06-16.