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 | O | P | Q | R | $ | * |
0 | 0 | / | S | T | U | V | W | X | Y | Z | , | ( |
A similar code was used for the IBM 709, 7090 and 7094 successors,[13] but with some of the special characters reassigned:
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 | & | A | B | C | D | E | F | G | H | I | . | ) | ||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | * | ||||
3x | space | / | S | T | U | V | W | X | Y | Z | ± | , | ( |
IBM 1401 BCD code
The IBM 1401 used the all-zero code for blank, and moved the digit zero to the code 10. It had defined character forms for all possible values, for documentation purposes,[14] but only 48 of the 63 non-blank characters were printable, and there was considerable variation in how the other code values (shaded in the table below) were depicted in practice. Even the other characters varied between different available print chains for the IBM 1403 printer.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ¢ | / | S | T | U | V | W | X | Y | Z | ‡ | , | % | = | ' | " |
2x | - | J | K | L | M | N | O | P | Q | R | ! | $ | * | ) | ; | Δ |
3x | & | A | B | C | D | E | F | G | H | I | ? | . | ⌑ | ( | < | ⯒ |
GBCD code
Below is the table of GE/Honeywell's GBCD code, a variant of 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 | space | A | B | C | D | E | F | G | H | I | & | . | ] | ( | < | \ |
2x | ^ | J | K | L | M | N | O | P | Q | R | - | $ | * | ) | ; | ' |
3x | + | / | S | T | U | V | W | X | Y | Z | _ | , | % | = | " | ! |
Burroughs B5500 BCD code
The following table shows the code assignments for the Burroughs B5500 computer, sometimes referred to as BIC (Burroughs Interchange Code).[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 | + | A | B | C | D | E | F | G | H | I | . | [ | & | ( | < | ← |
2x | × | J | K | L | M | N | O | P | Q | R | $ | * | - | ) | ; | ≤ |
3x | space | / | S | T | U | V | W | X | Y | Z | , | % | ≠ | = | ] | " |
Code page 353
The BCDIC-A Code page was assigned as Code page 353, also known as CP353. Some of the characters in this code page are not in Unicode. [The presence of two # characters but no + character seems incorrect in this table.][citation needed]
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | @ | : | > | √ |
1x | ␢ | / | S | T | U | V | W | X | Y | Z | ‡ | , | % | γ | \ | ⧻ |
2x | - | J | K | L | M | N | O | P | Q | R | ! | # | * | ] | ; | Δ |
3x | & | A | B | C | D | E | F | G | H | I | ? | . | ⌑ | [ | < | ⯒ |
At 0x1A is the record mark, which was not proposed separately due to its similarity to the double dagger. At 0x3F is the group mark.
PTTC/BCD code pages
PTTC/BCD had 5 options. There were five code pages. They are shown below. The PTTC/BCD Standard Option was assigned as Code page 355, or CP355.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | ‡ | , | γ | |||
2x | - | J | K | L | M | N | O | P | Q | R | < | $ | ||||
3x | & | A | B | C | D | E | F | G | H | I | ) | . |
The PTTC/BCD H Option was assigned as Code page 357, or CP357.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | ||||
1x | ' | / | S | T | U | V | W | X | Y | Z | ‡ | , | ||||
2x | - | J | K | L | M | N | O | P | Q | R | ! | $ | ||||
3x | + | A | B | C | D | E | F | G | H | I | ? | . |
The PTTC/BCD Correspondence Option was assigned as Code page 358, or CP358.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ||||
1x | ! | / | S | T | U | V | W | X | Y | Z | ‡ | , | ||||
2x | - | J | K | L | M | N | O | P | Q | R | < | ; | ||||
3x | = | A | B | C | D | E | F | G | H | I | > | . |
The PTTC/BCD Monocase Option was assigned as Code page 359, or CP359.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | , | |||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | |||||
3x | & | A | B | C | D | E | F | G | H | I | . |
The PTTC/BCD Duocase Option was assigned as Code page 360, or CP360.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | space | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | # | ||||
1x | @ | / | S | T | U | V | W | X | Y | Z | , | |||||
2x | - | J | K | L | M | N | O | P | Q | R | $ | |||||
3x | & | A | B | C | D | E | F | G | H | I | . |
Смотрите также
- Binary-coded decimal
- Six-bit character code
- EBCDIC
- SQUOZE
Заметки
- ^ There are actually multiple card codes, e.g, by 1964 there were ten versions of the IBM 026 with slightly different character sets.
- ^ The interface on, e.g., the 7090, is different, although the software still must do mapping.
Рекомендации
- ^ a b c d e Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF). The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. LCCN 77-90165. ISBN 978-0-201-14460-4. Archived from the original (PDF) on 2016-05-26. Retrieved 2017-04-22. [1]
- ^ Pugh, Emerson W.; Heide, Lars. "STARS:Punched Card Equipment". IEEE Global History Network. Archived from the original on 2012-05-11. Retrieved 2012-06-09.
- ^ Pugh, Emerson W. (1995). Building IBM: Shaping and Industry and Its Technology. MIT Press. pp. 50–51. ISBN 978-0-262-16147-3.
- ^ Jones, Douglas W. "Punched Card Codes". Retrieved 2014-01-01.
- ^ Burroughs B5500 Information Processing Systems: Reference Manual (PDF). Burroughs Corporation. 1964.
- ^ Control Data Corporation (1965). Codes/Control Data 6600 Computer System (PDF).
- ^ "Record-mark". Encyclopedia. PC Magazine. Retrieved 2016-04-09.
- ^ "group mark". Encyclopedia.com. Retrieved 2016-04-09.
- ^ Shirriff, Ken. "Proposal for addition of Group Mark symbol" (PDF). unicode.org. Retrieved 2016-04-09.
- ^ a b IBM 704 electronic data-processing machine manual of operation (PDF). IBM. 1955. p. 35. Form 24-6661-2. Retrieved 2017-04-22.
- ^ IBM 704 electronic data-processing machine manual of operation (PDF). IBM. 1955. p. 58. Form 24-6661-2. Retrieved 2017-04-22.
- ^ "Fortran Automatic Coding System for the IBM 704" (PDF). IBM. 1956-10-15. p. 49. Retrieved 2015-09-15.
- ^ Harper, Jack (2001-08-21). "IBM 7090/94 Character Representation". Retrieved 2017-04-22.
- ^ IBM 1401 Data Processing System: Reference Manual (PDF). IBM. April 1962. p. 170. A24-1403-5. Archived from the original (PDF) on 2012-03-14.
- ^ "Section: Tables of characters in BULL computers" (PDF). Archived from the original (PDF) on 2011-07-08. Retrieved 2010-11-15.
- ^ Burroughs B 5500 Information Processing Systems Extended Algol Reference Manual (PDF). 1966. p. B-1.
дальнейшее чтение
- Operating System - GCOS 8 Operating System - Programmer's Guide - Bull NovaScale 9000 Series Assembly Instructions - GCOS 8 (PDF). Bull S.A. CEDOC. November 2003. 67 A2 RJ78 REV00. Archived from the original (PDF) on 2015-02-12.
- Bonten, Jo H. M. (2009-03-08) [2007]. "Data formats in old 48- and 36-bits computers: Six-bits characters". Archived from the original on 2016-06-16. Retrieved 2016-06-16.