BCD ( двоично-десятичное число ), также называемое буквенно-цифровым BCD , буквенно-цифровым BCD , кодом обмена 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 применила термины «двоично-десятичный код» и «BCD» к вариантам буквенно-цифрового представления BCD , использовавшимся в большинстве ранних компьютеров IBM, включая IBM 1620 , IBM 1400 series и члены недесятичной архитектуры серии 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 .
Символ Recordmark или знак записи (представленный как ‡) — это символ , используемый для обозначения конца записи . [7] BCD-код этого символа — 32 8 в некоторых вариантах BCD. Ближайший эквивалент Unicode — U+29E7 ⧧ THERMODYNAMIC , но он встречается не во многих шрифтах, поэтому вместо него часто используется U+2021 ‡ DOUBLE 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.
Wordmark , напротив, не является символом BCD. Скорее, это бит-флаг, используемый для обозначения конца слова на некоторых компьютерах с переменной длиной слова, таких как IBM 1401 .
Существует множество различных версий шестибитного BCD-кода. Есть три основные категории различий:
В «испаноязычных странах» символа «С» не существовало в исходной системе, поэтому большинство производителей выбрали «@» : Bull, NCR и Control Data, но при объединении баз данных в 7-битную систему возникла несогласованность. Код ASCII, поскольку в этой системе кодирования был выбран символ «/» , в результате чего один и тот же символ получил два разных кода.
В следующих таблицах показаны числовые значения символов BCD в шестнадцатеричном формате (с основанием 16), поскольку это наиболее четко отражает структуру 4-битного двоично-десятичного числа плюс два дополнительных бита. Например, код «A» в строке 3x и столбце x1 — шестнадцатеричный 31 или двоичный «11 0001».
Первые версии BCDIC имели 48 символов, поскольку они были основаны на шаблонах перфорации карт и наборах символов принтеров, ни один из которых не предусматривал использование количества символов, равного степени двойки.
Это было основано на 40-значном коде перфокарты; исходные 37 (10 цифр, 26 букв и пробел), плюс три коммерчески важных символа, добавленные примерно в 1932 году: [1] : 67 дефис-минус, используемый для печати кредитных балансов и имен, написанных через дефис, амперсанд также используется во многих именах и адресах ( Procter & Gamble , Mr. & Mrs. Smith), а звездочка используется для печати поверх неиспользуемых полей при печати чеков .
Вместо того, чтобы следовать представлению хранилища IBM 704, IBM 1401 следовал представлению на ленте (произошедшему от 48-символьного двоично-десятичного кода), таким образом используя нулевой код для пробела и код 10 (0x0A) для нулевой цифры. В целях документации были определены формы символов для всех возможных значений [10] , но только 48 из 63 непустых символов были пригодны для печати, и существовали значительные различия в том, как изображались другие значения кода (заштрихованы в таблице ниже). на практике. Даже другие символы различались в разных доступных цепочках печати для принтера IBM 1403 .
Кодовая страница BCDIC-A была назначена как кодовая страница 353 , также известная как CP353 . Некоторые символы на этой кодовой странице не входят в Юникод. (Дублирование символа «#» можно найти в собственной документации IBM и здесь не является ошибкой. [11] ).
По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.
Кодовая страница BCDIC-B была назначена как кодовая страница 354 , также известная как CP354 . [12] Некоторые символы на этой кодовой странице не входят в Юникод.
По адресу 0x1A находится метка записи. По адресу 0x3F находится метка группы.
У PTTC/BCD было 5 вариантов. Было пять кодовых страниц. Они показаны ниже. Стандартной опции PTTC/BCD была присвоена кодовая страница 355 или CP355 .
Опции PTTC/BCD H была присвоена кодовая страница 357 или CP357 .
Опция соответствия PTTC/BCD была назначена как кодовая страница 358 или CP358 .
Опция Monocase PTTC/BCD была назначена как кодовая страница 359 или CP359 .
Опции PTTC/BCD Duocase была присвоена кодовая страница 360 или CP360 .
IBM 704 изменил порядок BCDIC-кода, чтобы обеспечить нормальный алфавитный порядок внутренней сортировки: 0 перед 1 и A перед Z. Он мог автоматически переводить между этой внутренней формой и более ранней BCDIC при чтении и записи магнитных лент . [13] : 35
В следующей таблице показаны назначения кодов для компьютера IBM 704 . Неназначенные позиции кода отображаются как пробелы. [13] : 35
(ибыли редко используемыми символами, которые соответствовали стандарту перфокарты: цифра 0 с переперченным знаком в строках 12 или 11.)
В следующей таблице показаны назначения кодов для принтера типа 716, который использовался начиная с компьютера IBM 704 и до 7094. [13] : 58 Интерфейс 704 [b] отправлял на этот принтер строки виртуальных перфокарт, два слова (72 бита). ) одновременно, поэтому преобразование 6-битных символов BCD выполнялось программным обеспечением и не было встроено в принтер.
Это репертуар из 45 символов (не считая пробела, который специально обрабатывается принтером), так как символы +
, -
и *
дублируются.
Были некоторые вариации; IBM 704 Fortran имел другой набор специальных символов (сохранялся только дублирующийся знак минус). [14]
Похожий код использовался для преемников IBM 709 , 7090 и 7094 , [15] , но с переназначением некоторых специальных символов:
Ниже приведена таблица кода GBCD компании GE/Honeywell, варианта BCD. [16]
В следующей таблице показаны назначения кодов для компьютера Burroughs B5500 , иногда называемого BIC (код обмена Burroughs). [17]
{{cite web}}
: Отсутствует или пусто |title=
( помощь )