BCD (кодировка символов)
Классификация | 6-битные буквенно-цифровые базовые латинские кодировки |
---|---|
Преемник | EBCDIC |
BCD ( двоично-десятичный код ), также называемый буквенно-цифровым BCD , буквенно-цифровым BCD , кодом обмена BCD , [ 1 ] или BCDIC , [ 1 ] — это семейство представлений цифр, прописных латинских букв, а также некоторых специальных и управляющих символов в виде шестибитных кодов символов .
В отличие от более поздних кодировок, таких как ASCII , коды BCD не были стандартизированы. Разные производители компьютеров и даже разные линейки продуктов одного и того же производителя часто имели свои варианты, а иногда и уникальные символы. Другие шестибитные кодировки с совершенно другими сопоставлениями, например некоторые FIELDATA. [ 1 ] варианты или Transcode иногда неправильно называют 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, были Burroughs , [ 5 ] Бык , Центр по контролю и профилактике заболеваний (CDC) , [ 6 ] IBM , General Electric (компьютерное подразделение было куплено Honeywell в 1969 году), NCR , Siemens и Sperry — UNIVAC .
IBM анонсировала 8-битный расширенный двоично-десятичный код обмена (EBCDIC), основанный на BCDIC, в 1964 году, выпустив линейку System/360 .
Специальные символы
[ редактировать ]Знак Recordmark или знак записи (представленный как ‡) — это символ, используемый для обозначения конца записи . [ 7 ] BCD-код этого символа — 32 8 в некоторых вариантах 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 в начале строки с буквой S в ней. Все коды имеют некоторую специальную обработку, которая либо преобразует цифру 0 в двоичный код, состоящий из всех нулей (и перемещает пробел в другое место), либо присваивает ей двоичный код 001010 (десятичное 10) и перемещает цифру 8+2 в другое место.
- Назначение специальных символов. Символы, присвоенные кодам, выходящим за рамки базового буквенно-цифрового набора, сильно различались даже в пределах одной модели компьютера.
В «испаноязычных странах» символа «С» не существовало в исходной системе, поэтому «@» большинство производителей выбрали : Bull, NCR и Control Data, но при объединении баз данных в 7-битную систему возникла несогласованность. Код ASCII, поскольку в этой системе кодирования был выбран символ «/» , в результате чего один и тот же символ получил два разных кода.
Примеры BCD-кодов
[ редактировать ]В следующих таблицах показаны числовые значения символов BCD в шестнадцатеричном формате (с основанием 16), поскольку это наиболее четко отражает структуру 4-битного двоично-десятичного числа плюс два дополнительных бита. Например, код «A» в строке 3x и столбце x1 — шестнадцатеричный 31 или двоичный «11 0001».
Стиль ленты
[ редактировать ]48-значный двоично-десятичный код
[ редактировать ]Первые версии BCDIC имели 48 символов, поскольку они были основаны на шаблонах перфорации карт и наборах символов принтеров, ни один из которых не предусматривал использование количества символов, равного степени двойки.
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | |||
1x | / | С | Т | В | V | В | Х | И | С | , | % | |||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | ||||
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | ⌑ |
Это было основано на 40-значном коде перфокарты; исходные 37 (10 цифр, 26 букв и пробел), плюс три коммерчески важных символа, добавленных примерно в 1932 году: [ 1 ] : 67 дефис-минус используется для печати кредитных балансов и имен, написанных через дефис, амперсанд также используется во многих именах и адресах ( Procter & Gamble , Mr. & Mrs. Smith), а звездочка используется для печати поверх неиспользуемых полей при печати чеков .
IBM 1401 BCD-код
[ редактировать ]Вместо того, чтобы следовать представлению хранилища IBM 704, IBM 1401 следовал представлению на ленте (произошедшему от 48-символьного двоично-десятичного кода), таким образом используя нулевой код для пробела и код 10 (0x0A) для нулевой цифры. Для целей документации были определены формы символов для всех возможных значений. [ 10 ] но только 48 из 63 непустых символов были пригодны для печати, и существовали значительные различия в том, как на практике отображались другие значения кода (заштрихованы в таблице ниже). Даже другие символы различались в разных доступных цепочках печати для принтера IBM 1403 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ¢ | / | С | Т | В | V | В | Х | И | С | ⧧ | , | % | = | ' | " |
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | ! | $ | * | ) | ; | Д |
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | ? | . | ⌑ | ( | < | ⯒ |
Кодовая страница 353
[ редактировать ]Кодовая страница BCDIC-A была назначена как кодовая страница 353 , также известная как CP353 . Некоторые символы на этой кодовой странице не входят в Юникод. (Дублирование символа «#» можно найти в документации IBM и здесь не является ошибкой. [ 11 ] )
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ␢ | / | С | Т | В | V | В | Х | И | С | ⧧ | , | % | с | \ | ⧻ |
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | ! | # | * | ] | ; | Д |
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | ? | . | ⌑ | [ | < | ⯒ |
По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.
Кодовая страница 354
[ редактировать ]Кодовая страница BCDIC-B была назначена как кодовая страница 354 , также известная как CP354 . [ 12 ] Некоторые символы на этой кодовой странице не входят в Юникод.
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ⊙ | ' | : | > | √ |
1x | ␢ | / | С | Т | В | V | В | Х | И | С | ⧧ | , | ( | с | \ | ⧻ |
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | ! | # | * | ] | ; | Д |
3x | + | А | Б | С | Д | И | Ф | Г | ЧАС | я | ? | . | ) | [ | < | ⯒ |
По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.
Кодовые страницы PTTC/BCD
[ редактировать ]У PTTC/BCD было 5 вариантов. Было пять кодовых страниц. Они показаны ниже. Стандартной опции PTTC/BCD была присвоена кодовая страница 355 или CP355 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | С | Т | В | V | В | Х | И | С | ⧧ | , | с | |||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | < | $ | ||||
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | ) | . |
Опции PTTC/BCD H была присвоена кодовая страница 357 или CP357 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | ||||
1x | ' | / | С | Т | В | V | В | Х | И | С | ⧧ | , | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | ! | $ | ||||
3x | + | А | Б | С | Д | И | Ф | Г | ЧАС | я | ? | . |
Опция соответствия PTTC/BCD была назначена как кодовая страница 358 или CP358 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ||||
1x | ! | / | С | Т | В | V | В | Х | И | С | ⧧ | , | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | < | ; | ||||
3x | = | А | Б | С | Д | И | Ф | Г | ЧАС | я | > | . |
Опция Monocase PTTC/BCD была назначена как кодовая страница 359 или CP359 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | С | Т | В | V | В | Х | И | С | , | |||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | |||||
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | . |
Опции PTTC/BCD Duocase была присвоена кодовая страница 360 или CP360 .
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | космос | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | С | Т | В | V | В | Х | И | С | , | |||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | |||||
3x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | . |
Стиль хранения IBM 704
[ редактировать ]IBM 704 BCD-код
[ редактировать ]IBM 704 изменил порядок BCDIC-кода, чтобы обеспечить нормальный алфавитный порядок внутренней сортировки: 0 перед 1 и A перед Z. Он мог автоматически переводить между этой внутренней формой и более ранней BCDIC при чтении и записи магнитных лент . [ 13 ] : 35
В следующей таблице показаны назначения кодов для компьютера IBM 704 . Неназначенные позиции кода отображаются как пробелы. [ 13 ] : 35
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ||||
1x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | ⌑ | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | ||||
3x | космос | / | С | Т | В | V | В | Х | И | С | ⧧ | , | % |
( и использовались редко, что соответствовало стандарту перфокарты с цифрой 0 с переперченным знаком в строках 12 или 11.)
В следующей таблице показаны присвоения кодов для принтера типа 716, используемого, начиная с компьютера IBM 704 и заканчивая 7094. [ 13 ] : 58 Интерфейс 704 [ б ] отправлял на этот принтер строки виртуальных перфокарт по два слова (72 бита) за раз, поэтому преобразование 6-битных символов BCD выполнялось программным обеспечением и не было встроено в принтер.
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | - | ||||
1x | + | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | ⌑ | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | ||||
3x | 0 | / | С | Т | В | V | В | Х | И | С | , | % |
Это набор из 45 символов (не считая пробелов, которые специально обрабатываются принтером), так как символы +
, -
и *
дублируются.
Набор символов Фортрана
[ редактировать ]Были некоторые вариации; IBM 704 Fortran имел другой набор специальных символов (сохранялся только дублирующийся знак минус). [ 14 ]
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | - | ||||
1x | + | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | ) | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | ||||
3x | 0 | / | С | Т | В | V | В | Х | И | С | , | ( |
Похожий код использовался для преемников IBM 709 , 7090 и 7094 . [ 15 ] но с переназначением некоторых специальных символов:
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | = | " | ||||
1x | & | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | ) | ||||
2x | - | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | ||||
3x | космос | / | С | Т | В | V | В | Х | И | С | ± | , | ( |
GBCD-код
[ редактировать ]Ниже приведена таблица кода GBCD компании GE/Honeywell, варианта BCD. [ 16 ]
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ | # | @ | : | > | ? |
1x | космос | А | Б | С | Д | И | Ф | Г | ЧАС | я | & | . | ] | ( | < | \ |
2x | ^ | Дж | К | л | М | Н | ТО | П | вопрос | Р | - | $ | * | ) | ; | ' |
3x | + | / | С | Т | В | V | В | Х | И | С | _ | , | % | = | " | ! |
BCD-код Берроуза B5500
[ редактировать ]В следующей таблице показаны назначения кодов для компьютера Burroughs B5500 , иногда называемого BIC (код обмена Burroughs). [ 17 ]
х0 | х1 | х2 | х3 | х4 | х5 | х6 | х7 | х8 | х9 | шах | хБ | хС | хД | машина | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | # | @ | ? | : | > | ≥ |
1x | + | А | Б | С | Д | И | Ф | Г | ЧАС | я | . | [ | & | ( | < | ← |
2x | × | Дж | К | л | М | Н | ТО | П | вопрос | Р | $ | * | - | ) | ; | ≤ |
3x | космос | / | С | Т | В | V | В | Х | И | С | , | % | ≠ | = | ] | " |
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF) . Серия системного программирования (1-е изд.). издательской компании Addison-Wesley, Inc. ISBN 0-201-14460-3 . LCCN 77-90165 . Архивировано (PDF) из оригинала 26 мая 2016 г. Проверено 22 апреля 2017 г. [1]
- ^ Пью, Эмерсон В.; Хайде, Ларс. «ЗВЕЗДЫ:Оборудование для перфокарт» . Сеть глобальной истории IEEE. Архивировано из оригинала 11 мая 2012 г. Проверено 9 июня 2012 г.
- ^ Пью, Эмерсон В. (1995). Создание IBM: формирование промышленности и ее технологий . МТИ Пресс . стр. 50–51 . ISBN 978-0-262-16147-3 .
- ^ Джонс, Дуглас В. «Коды перфокарт» . Проверено 1 января 2014 г.
- ^ Системы обработки информации Burroughs B5500: Справочное руководство (PDF) . Корпорация Берроуз . 1964. Архивировано из оригинала (PDF) 29 июля 2020 г. Проверено 8 июня 2012 г.
- ^ Корпорация Control Data (1965). Коды/управляющие данные Компьютерная система 6600 (PDF) .
- ^ «Рекорд-марка» . Энциклопедия . Журнал ПК . Проверено 9 апреля 2016 г.
- ^ «групповой знак» . Энциклопедия.com . Проверено 9 апреля 2016 г.
- ^ Ширрифф, Кен. «Предложение о добавлении символа знака группы» (PDF) . unicode.org . Проверено 9 апреля 2016 г.
- ^ Система обработки данных IBM 1401: Справочное руководство (PDF) . ИБМ . Апрель 1962 г. с. 170. А24-1403-5. Архивировано из оригинала (PDF) 14 марта 2012 г.
- ^ «Глобализация систем и программного обеспечения cp00353z» (PDF) . www-03.ibm.com . Архивировано из оригинала (PDF) 21 января 2013 г. Проверено 30 июня 2022 г.
- ^ https://ccsids.net/ccsids.html#ccsid-354 .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ Перейти обратно: а б с Руководство по эксплуатации электронной вычислительной машины IBM 704 (PDF) . ИБМ . 1955. С. 35, 58. Форма 24-6661-2 . Проверено 22 апреля 2017 г.
- ^ «Система автоматического кодирования на Фортране для IBM 704» (PDF) . ИБМ . 15 октября 1956 г. п. 49 . Проверено 15 сентября 2015 г.
- ^ Харпер, Джек (21 августа 2001 г.). «Представление символов IBM 7090/94» . Проверено 22 апреля 2017 г.
- ^ «Раздел: Таблицы символов в компьютерах BULL» (PDF) . Архивировано из оригинала (PDF) 8 июля 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 г.
- Бонтен, Джо ХМ (08 марта 2009 г.) [2007]. «Форматы данных в старых 48- и 36-битных компьютерах: шестибитные символы» . Гелдроп, Нидерланды. Архивировано из оригинала 16 июня 2016 г. Проверено 16 июня 2016 г.