Jump to content

Десятичный бинарный десятичный

(Перенаправлен из распакованного BCD )

Бинарные часы могут использовать светодиоды для выражения двоичных значений. В этих часах на каждом столбце светодиодов показано дробное десятичное число, кодируемое бинарной кодировкой традиционного времени секс-поджигания .

В вычислительных и электронных системах десятичное количество бинарного кодирования ( BCD ) представляет собой класс бинарных кодировки десятичных чисел, где каждая цифра представлена ​​фиксированным количеством битов , обычно четыре или восемь. Иногда специальные битовые шаблоны используются для знака или других указаний (например, ошибка или переполнение).

В байто -ориентированных системах (то есть большинстве современных компьютеров) термин распакованный BCD [ 1 ] Обычно подразумевает полный байт для каждой цифры (часто включающего знак), тогда как упакованный BCD обычно кодирует две цифры в пределах одного байта, используя преимущества того факта, что четырех битов достаточно, чтобы представить диапазон от 0 до 9. Точные четырехбитовые Кодирование, однако, может варьироваться в зависимости от технических причин (например, избыток 3 ).

Десять штатов, представляющих цифру BCD, иногда называют тетрадами [ 2 ] [ 3 ] ( Крыш, как правило, необходимый для их удержания, также известен как тетрада), в то время как неиспользованные, не наплевать , -псевдотетрадные (e) s [ de ] , [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] псевдо-децималы [ 3 ] или псевдо-десятичные цифры . [ 9 ] [ 10 ] [ NB 1 ]

Основной добродетелью BCD, по сравнению с бинарными позиционными системами , является его более точное представление и округление десятичных знаков, а также его легкость преобразования в обычные человеческие представления. Его основными недостатками являются небольшое увеличение сложности цепей, необходимых для реализации основной арифметики, а также немного менее плотного хранения.

BCD использовался во многих ранних десятичных компьютерах и реализован в наборе инструкций с такими машинами, как System/360 -й серия и ее потомки, Digital Equipment Corporation , Vax Burroughs B1700 и процессоры Motorola 68000 -Series.

BCD сам по себе не так широко используется, как в прошлом, и недоступен или ограничен в новых наборах инструкций (например, ARM ; x86 в длинном режиме ). Тем не менее, десятичные значения с фиксированной точкой и десятичной десятичной точки зрения по-прежнему важны и продолжают использоваться в финансовых, коммерческих и промышленных вычислениях, где тонкие ошибки преобразования и дробного округления , которые присутствуют в бинарных форматах плавающей запятой. [ 11 ]

BCD использует тот факт, что любой один десятичный цифру может быть представлен четырехбит-шаблоном. Очевидным способом кодирования цифр является естественный BCD (NBCD), где каждая десятичная цифра представлена ​​соответствующим четырехбитовым бинарным значением, как показано в следующей таблице. Это также называется «8421» кодировкой.

Десятичная цифра BCD
8 4 2 1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

Эта схема также может быть названа простой десятичной ( SBCD ) или BCD 8421 , и является наиболее распространенным кодированием. [ 12 ] Другие включают так называемое кодирование «4221» и «7421»-названное в честь взвешивания, используемого для битов-и « избыток-3 ». [ 13 ] Например, BCD Digit 6, 0110'b в 8421 нотации 1100'b в 4221 (возможны две кодировки), 0110'b в 7421, в то время как в избытке-3 это 1001'b ( ).

4-битные коды BCD и псевдо-тетради
Кусочек Масса  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 Комментарий 
4 8 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Бинарный
3 4 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
2 2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Имя 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Десятичный
8 4 2 1 (xs-0) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ NB 2 ]
7 4 2 1 0 1 2 3 4 5 6   7 8 9           [ 18 ] [ 19 ] [ 20 ]
Айкен (2 4 2 1) 0 1 2 3 4             5 6 7 8 9 [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ NB 3 ]
Избыток-3 (XS-3) -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ NB 2 ]
Избыток-6 (XS-6) -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 [ 18 ] [ NB 2 ]
Прыгнуть в 2 (2 4 2 1) 0 1             2 3 4 5 6 7 8 9 [ 16 ] [ 17 ]
Прыгай на 8 (2 4 2 1) 0 1 2 3 4 5 6 7             8 9 [ 21 ] [ 22 ] [ 16 ] [ 17 ] [ NB 4 ]
4 2 2 1 (i) 0 1 2 3     4 5         6 7 8 9 [ 16 ] [ 17 ]
4 2 2 1 (II) 0 1 2 3     4 5     6 7     8 9 [ 21 ] [ 22 ]
5 4 2 1 0 1 2 3 4       5 6 7 8 9       [ 18 ] [ 14 ] [ 16 ] [ 17 ]
5 2 2 1 0 1 2 3     4   5 6 7 8     9   [ 14 ] [ 16 ] [ 17 ]
5 1 2 1 0 1 2 3       4 5 6 7 8       9 [ 19 ]
5 3 1 1 0 1   2 3 4     5 6   7 8 9     [ 16 ] [ 17 ]
Белый (5 2 1 1) 0 1   2   3   4 5 6   7   8   9 [ 23 ] [ 18 ] [ 14 ] [ 16 ] [ 17 ]
5 2 1 1 0 1   2   3   4 5   6   7   8 9 [ 24 ]
  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Магнитная лента   1 2 3 4 5 6 7 8 9 0           [ 15 ]
Пол   1 3 2 6 7 5 4   0     8 9     [ 25 ]
Серый 0 1 3 2 6 7 5 4 15 14 12 13 8 9 11 10 [ 26 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ NB 2 ]
Гликсон 0 1 3 2 6 7 5 4 9       8       [ 27 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ]
Ледли 0 1 3 2 7 6 4 5         8   9   [ 28 ]
4 3 1 1 0 1   2 3     5 4     6 7   8 9 [ 19 ]
Лагр 0 1   2     4 3 5 6   7     9 8 [ 29 ]
Прозрачный 0 1   2     4 3 9 8   7     5 6 [ 2 ] [ 3 ]
Петерик (Рей)   1 3 2   0 4     8 6 7   9 5   [ 30 ] [ 31 ] [ NB 5 ]
О'Брайен I (Watts) 0 1 3 2     4   9 8 6 7     5   [ 32 ] [ 14 ] [ 16 ] [ 17 ] [ NB 6 ]
5-циклический 0 1 3 2     4   5 6 8 7     9   [ 28 ]
Томпкинс я 0 1 3 2     4     9     8 7 5 6 [ 33 ] [ 14 ] [ 16 ] [ 17 ]
Липпель 0 1 2 3     4     9     8 7 6 5 [ 34 ] [ 35 ] [ 14 ]
О'Ррен II   0 2 1 4   3     9 7 8 5   6   [ 32 ] [ 14 ] [ 16 ] [ 17 ]
Томпкинс II     0 1 4 3   2   7 9 8 5 6     [ 33 ] [ 14 ] [ 16 ] [ 17 ]
Избыток-3 серого -3 -2 0 -1 4 3 1 2 12 11 9 10 5 6 8 7 [ 16 ] [ 17 ] [ 20 ] [ NB 7 ] [ NB 2 ]
6 3 −2 −1 (i)         3 2 1 0   5 4 8 9   7 6 [ 29 ] [ 36 ]
6 3 −2 −1 (ii) 0       3 2 1   6 5 4   9 8 7   [ 29 ] [ 36 ]
8 4 −2 −1 0       4 3 2 1 8 7 6 5       9 [ 29 ]
Лукал 0 15 14 1 12 3 2 13 8 7 6 9 4 11 10 5 [ 37 ]
Кауц я 0     2   5 1 3   7 9   8 6   4 [ 18 ]
Кауц II   9 4   1   3 2 8   6 7   0 5   [ 18 ] [ 14 ]
Susskind i   0   1   4 3 2   9   8 5   6 7 [ 35 ]
Susskind II   0   1   9   8 4   3 2 5   6 7 [ 35 ]
  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Следующая таблица представляет десятичные цифры от 0 до 9 в различных системах кодирования BCD. В заголовках, " 8421 вес каждого " Указывает бита . показано

 
Цифра
BCD
8 4 2 1
Стибиц- код или избыток-3 Aiken-код или BCD
2 4 2 1
BCD
8 4 −2 −1
IBM 702 , IBM 705 , IBM 7080 , IBM 1401
8 4 2 1
Асии
0000 8421
Ebcdic
0000 8421
0 0000 0011 0000 0000 1010 0011 0000 1111 0000
1 0001 0100 0001 0111 0001 0011 0001 1111 0001
2 0010 0101 0010 0110 0010 0011 0010 1111 0010
3 0011 0110 0011 0101 0011 0011 0011 1111 0011
4 0100 0111 0100 0100 0100 0011 0100 1111 0100
5 0101 1000 1011 1011 0101 0011 0101 1111 0101
6 0110 1001 1100 1010 0110 0011 0110 1111 0110
7 0111 1010 1101 1001 0111 0011 0111 1111 0111
8 1000 1011 1110 1000 1000 0011 1000 1111 1000
9 1001 1100 1111 1111 1001 0011 1001 1111 1001

Поскольку большинство компьютеров занимаются данными в 8-битных байтах , можно использовать один из следующих методов для кодирования числа BCD:

  • Распакованный : каждая десятичная цифра кодируется в один байт, с четырьмя битами, представляющими количество, а оставшиеся биты не имеют значения.
  • Упакованные : две десятичные цифры кодируются в один байт, с одной цифрой в наименьшем значительном шлюшке ( биты от 0 до 3 ) и другой цифрой в наиболее значимой шкуре (биты с 4 по 7). [ NB 8 ]

В качестве примера кодирование десятичного числа 91 Использование распакованного BCD приводит к следующей бинарной шаблоне двух байтов:

Decimal:         9         1
Binary : 0000 1001 0000 0001

В упакованном BCD тот же номер будет вписаться в один байт:

Decimal:    9    1
Binary : 1001 0001

Следовательно, числовой диапазон для одного распакованного байта BCD равен нулю до девяти инклюзивных, тогда как диапазон для одного упакованного байта BCD составляет нуль до девяносто девять включительно.

Для представления чисел больше, чем диапазон одного байта, может использоваться любое количество смежных байтов. Например, представлять десятичное число 12345 В упакованном BCD, используя формат Big-Endian , программа будет кодировать следующим образом:

Decimal:    0    1    2    3    4    5
Binary : 0000 0001 0010 0011 0100 0101

Здесь наиболее значимый кусок наиболее значимого байта был закодирован как нулевой, поэтому число хранится как 012345 (Но форматирование процедур может заменить или удалить ведущие нули). Упакованный BCD более эффективен в использовании хранилища, чем распаковка BCD; Кодирование того же числа (с ведущим нолью) в распакованном формате будет потреблять вдвое больше хранилища.

Смена и маскирование используется для упаковки или распаковки упакованной цифры BCD. Другие бить операции используются для преобразования цифры в его эквивалентный битовый шаблон или обратить вспять процесс.

Упакованный BCD

[ редактировать ]

В упакованном BCD (или упакованном десятичным [ 38 ] ), каждая шлака представляет собой десятичную цифру. [ NB 8 ] Упакованный BCD используется, по крайней мере, с 1960 -х годов и с тех пор реализуется во всех оборудовании Mainframe IBM. Большинство реализаций являются большими эндианами , т.е. с более значимой цифрой в верхней половине каждого байта и с самым левым байтом (находящимся на самом низком адресе памяти), содержащих наиболее значимые цифры упакованного десятичного значения. Нижняя кусочка самого правого байта обычно используется в качестве флага знака, хотя в некоторых без знаковых представлений не хватает знакового флага.

В качестве примера, 4-байтовое значение состоит из 8 шнуров, в которых верхние 7 шнурок хранят цифры 7-значного десятичного значения, а самая низкая кусочка указывает на признак десятичного целого числа. Значения стандартных знаков составляют 1100 ( hex c) для положительных (+) и 1101 (d) для отрицательного ( -). Эта конвенция происходит от поля зоны для символов EBCDIC и подписанного представления о переплате .

Другие допустимые знаки - 1010 (а) и 1110 (e) для положительного и 1011 (b) для отрицательного. Процессоры IBM System/360 будут использовать знаки 1010 (a) и 1011 (b), если бит установлен в PSW, для стандарта ASCII-8, который никогда не проходил. Большинство реализаций также предоставляют бессознанные значения BCD с помощью знака 1111 (f). [ 39 ] [ 40 ] [ 41 ] ILE RPG использует 1111 (f) для положительного и 1101 (d) для отрицательного. [ 42 ] Они соответствуют зоне EBCDIC для цифр без знака. В упакованном BCD число 127 представлено 0001 0010 0111 1100 (127c), а -127 представлен 0001 0010 0111 1101 (127d). Системы Берроуза использовали 1101 (d) для отрицательного, а любое другое значение считается положительным значением (процессоры нормализуют положительный знак до 1100 (c)).

Знак
цифра
BCD
8 4 2 1
Знак Примечания
А 1 0 1 0 +  
Беременный 1 0 1 1  
В 1 1 0 0 + Предпочтительный
Дюймовый 1 1 0 1 Предпочтительный
И 1 1 1 0 +  
Фон 1 1 1 1 + Без знака

Независимо от того, сколько байтов ширится слово , всегда существует равномерное количество глиняных, потому что каждый байт имеет два из них. Следовательно, слово n байтов может содержать до (2 N ) -1 десятичных цифр, что всегда является нечетным количеством цифр. Десятичное число с Digits требует 1/2 хранения ( D . +1) байты места для

Например, 4-байтовое (32-битное) слово может содержать семь десятичных цифр плюс знак и может представлять значения в диапазоне от ± 9 999 999. Таким образом, число -1,234 567 имеет ширину 7 цифр и кодируется как:

0001 0010 0011 0100 0101 0110 0111 1101
1    2    3    4    5    6    7    −

Подобно струнам персонажей, первый байт упакованного десятичного десятичного, который с наиболее значимыми двумя цифрами - обычно хранится в самом низком адресе в памяти, независимо от эндезии машины.

Напротив, 4-банальное целое число бинарных двух дополнений может представлять значения от -2,147,483,648 до +2,147,483,647.

В то время как упакованный BCD не делает оптимальное использование хранилища (используя примерно на 20% больше памяти, чем двоичная нотация для хранения тех же чисел), преобразование в ASCII , EBCDIC или различные кодирования Unicode становятся тривиальными, поскольку не требуется арифметические операции. Дополнительные требования к хранению обычно компенсируются необходимостью точности и совместимости с калькулятором или расчетом рук, которые обеспечивает десятичная арифметика с фиксированной точкой. Существуют более плотные упаковки BCD , которые избегают штрафа для хранения, а также не требуют арифметических операций для общих конверсий.

Упакованный BCD поддерживается на языке программирования COBOL как «Computational-3» (расширение IBM, принятое многими другими поставщиками компилятора) или «упакованным децимальным» (часть стандарта COBOL 1985 года). Он поддерживается в PL/I как «фиксированное десятичное значение». Помимо системы IBM/360 и более поздней совместимых мэйнфреймов, упакованный BCD реализован в натуральном наборе инструкций оригинальных процессоров VAX из Cygna Equipment Corporation и некоторых моделей мэйнфреймов серии SDS SIGMA и является собственным форматом для средних систем Берроуз. линии мэйнфреймов (произошел от серии Electrodata 200 -х годов ).

Представления дополнения Ten ​​для негативных чисел предлагают альтернативный подход к кодированию знака упакованных (и других) номеров BCD. В этом случае положительные числа всегда имеют наиболее значительную цифру от 0 до 4 (включительно), в то время как отрицательные числа представлены в комплеме 10 соответствующего положительного числа.

В результате эта система позволяет 32-разрядным упакованным числам BCD варьироваться от -50 000 до +49 999 999, а -1 представлен как 99999999. (Как и в случае с бинарными номерами двух комплемента, диапазон не симметрично около нуля.)

Упаковка с фиксированной точкой

[ редактировать ]

Десятичные числа с фиксированной точкой поддерживаются некоторыми языками программирования (например, Cobol и PL/I). Эти языки позволяют программисту указать неявную десятичную точку перед одной из цифр.

Например, упакованное десятичное значение, кодируемое с байтами 12 34 56 7C, представляет значение с фиксированной точкой +1,234,567, когда подразумеваемая десятичная точка расположена между четвертой и пятой цифрами:

12 34 56 7C
12 34.56 7+

Десятичная точка фактически не хранится в памяти, так как упакованный формат хранения BCD не обеспечивает его. Его местоположение просто известно компилятору, и сгенерированный код действует соответственно для различных арифметических операций.

Кодирования более высокой плотности

[ редактировать ]

Если десятичная цифра требует четыре бита, то три десятичных цифра требуют 12 бит. Однако с 2 10 (1 024) больше 10 3 (1000), если три цифры десятичных знаков кодируются вместе, необходимы только 10 бит. Два таких кодировки - это кодирование Чэнь -Хо и плотно упакованное десятичное значение (DPD). Последнее имеет то преимущество, что подмножества кодирования кодирует две цифры в оптимальных семи битах и ​​одну цифру за четыре бита, как в обычном BCD.

Зональный десятичный

[ редактировать ]

Некоторые реализации, например, системы мэйнфреймов IBM , поддерживают зонированные десятичные цифровые представления. Каждая десятичная цифра хранится в одном байте, с нижними четырех битами, кодирующими цифру в форме BCD. Верхние четыре бита, называемые битами «зоны», обычно устанавливаются на фиксированное значение, так что байт содержит значение символа, соответствующее цифру. Системы EBCDIC используют значение зоны 1111 (HEX F); Это дает байты в диапазоне от F0 до F9 (HEX), которые являются кодами EBCDIC для символов «0» до «9». Аналогичным образом, системы ASCII используют значение зоны 0011 (HEX 3), давая коды символов от 30 до 39 (HEX).

Для подписанных зонированных десятичных значений самая правая (наименьшая значимая) зона Nibble содержит цифру знака, которая представляет собой тот же набор значений, которые используются для подписанных упакованных десятичных чисел (см. Выше). Таким образом, зонированное десятичное значение, кодируемое как шестигранные байты F1 F2 D3, представляет подписанное десятичное значение -123:

F1 F2 D3
1  2 −3

Ebcdic Zone Decimal Table Table

[ редактировать ]
BCD Digit Шестнадцатеричный Эбсдический персонаж
0+ C0 А0 E0 Пл { (*)   \ (*) 0
1+ C1 А1 E1 F1 А ~ (*)   1
2+ C2 A2 E2 F2 Беременный с С 2
3+ C3 A3 E3 F3 В Т Т 3
4+ C4 A4 E4 F4 Дюймовый в В 4
5+ C5 A5 E5 F5 И v V 5
6+ C6 A6 E6 F6 Фон В В 6
7+ C7 A7 E7 F7 Глин х Х 7
8+ C8 A8 E8 F8 ЧАС и И 8
9+ C9 A9 E9 F9 я С С 9
0− D0 B0     }  (*) ^  (*)    
1− D1 B1     Дж      
2− D2 B2     K      
3− D3 B3     Л      
4− D4 B4     М      
5− D5 B5     Не      
6− D6 B6     А      
7− D7 B7     П      
8− D8 B8     Q.      
9− D9 B9     Ведущий      

(*) Примечание: эти символы варьируются в зависимости от настройки локального кода символа .

Зонут с фиксированной точкой

[ редактировать ]

Некоторые языки (такие как COBOL и PL/I) непосредственно поддерживают зонированные десятичные значения с фиксированной точкой, присваивая неявную десятичную точку в некотором месте между десятичными цифрами числа.

Например, учитывая шесть-байтовое подписанное зонированное десятичное значение с подразумеваемой десятичной точкой справа от четвертой цифры, шестигранные байты F1 F2 F7 F9 F5 C0 представляют значение +1,279,50:

F1 F2 F7 F9 F5 C0
1  2  7  9. 5 +0

Операции с BCD

[ редактировать ]

Добавление

[ редактировать ]

Можно выполнить дополнение , сначала добавив в двоичный файл, а затем конвертируя в BCD после этого. Преобразование простой суммы двух цифр может быть сделано путем добавления 6 (то есть 16-10), когда пятибитный результат добавления пары цифр имеет значение, превышающее 9. Причина добавления 6 заключается в том, что есть, что есть 16 возможных 4-битных значений BCD (с 2 4 = 16), но только 10 значений действительны (с 0000 по 1001). Например:

1001 + 1000 = 10001
   9 +    8 =    17

10001 является бинарным, не десятичным, представление желаемого результата, но наиболее значимый 1 («перенос») не может вписаться в 4-битное двоичное число. В BCD, как и в десятичном виде, не может существовать значение, превышающее 9 (1001) на цифру. Чтобы исправить это, 6 (0110) добавляется к общему количеству, а затем результат рассматривается как два глиняния:

10001 + 0110 = 00010111 => 0001 0111
   17 +    6 =       23       1    7

Две шлица результата, 0001 и 0111 соответствуют цифрам «1» и «7». Это дает «17» в BCD, что является правильным результатом.

Этот метод может быть распространен на добавление нескольких цифр, добавив в группы справа налево, распространяя вторую цифру в качестве переноса, всегда сравнивая 5-битный результат каждой суммы цифр до 9. Некоторые процессоры предоставляют флаг на пол-карри облегчить арифметические корректировки BCD после бинарных операций с добавлением и вычитанием. Intel 8080 , Zilog Z80 и процессоры семейства x86 обеспечивают DAA OPCODE (аккумулятор Decimal Actord).

Вычитание

[ редактировать ]

Вычитание осуществляется путем добавления дополнения десяти подтрахну в Минюэнд . Чтобы представить знак числа в BCD, число 0000 используется для представления положительного числа , а 1001 используется для представления отрицательного числа . Оставшиеся 14 комбинаций являются недействительными знаками. Чтобы проиллюстрировать подписанную вычитание BCD, рассмотрите следующую задачу: 357 - 432.

В подписанном BCD 357 IS 0000 0011 0101 0111. Добавление десяти 432 может быть получено, взяв дополнение девяти 432, а затем добавив один. Таким образом, 999 - 432 = 567 и 567 + 1 = 568. По предшествованию 568 в BCD с помощью отрицательного кода знака может быть представлено число −432. Таким образом, -432 в подписанном BCD составляет 1001 0101 0110 1000.

Теперь, когда оба числа представлены в подписанном BCD, их можно объединить:

  0000 0011 0101 0111
  0    3    5    7
+ 1001 0101 0110 1000
  9    5    6    8
= 1001 1000 1011 1111
  9    8    11   15

Поскольку BCD является формой десятичного представления, некоторые из приведенных выше сумм цифр являются недействительными. В случае, если существует неверная запись (любая цифра BCD, превышающая 1001), добавляется 6, чтобы генерировать бит переноса и привести к тому, что сумма станет действительной записью. Итак, добавление 6 в недействительные записи приводит к следующему:

  1001 1000 1011 1111
  9    8    11   15
+ 0000 0000 0110 0110
  0    0    6    6
= 1001 1001 0010 0101
  9    9    2    5

Таким образом, результат вычитания составляет 1001 1001 0010 0101 (-925). Чтобы подтвердить результат, обратите внимание, что первая цифра составляет 9, что означает отрицательный. Это кажется правильным, так как 357 - 432 должно привести к отрицательному числу. Оставшиеся шнурки - BCD, поэтому 1001 0010 0101 составляет 925. Дополнение десяти 925 составляет 1000 - 925 = 75, поэтому рассчитываемый ответ составляет -75.

Если существует различное количество складываемых кусочков (например, 1053 - 2), число с меньшим количеством цифр должно сначала быть префикс с помощью нулей, прежде чем принимать дополнение или вычитание десяти. Таким образом, с 1053 - 2, 2 должны сначала быть представлены как 0002 в BCD, а дополнение десяти придется рассчитывать.

BCD в компьютерах

[ редактировать ]

IBM использовал термины, кодируемые двунарными десятичным обменом (BCDIC, иногда просто называемый BCD), для 6-битных буквенно-цифровых кодов, которые представляли цифры, буквы в верхнем случае и специальные символы. Некоторые варианты BCDIC Alphamerics используются в большинстве ранних компьютеров IBM, включая IBM 1620 (представлены в 1959 году), серии IBM 1400 и не десятичной архитектуры членов серии IBM 700/7000 .

Серия IBM 1400 представляет собой машины, подходящие для символов, каждый расположение составляет шесть бит, помеченных B, A, 8, 4, 2 и 1, плюс нечетный бит проверки паритета ( C ) и бит сорта ( M ). Для цифр кодирования с 1 по 9 , B и A имеют ноль, а значение цифры, представленное стандартным 4-битным BCD в битах с 8 по 1 . Для большинства других символов биты B и A получены просто из «12», «11» и «0» «Панки зоны» в коде символа перфорированной карты и биты с 8 по 1 из ударов от 1 до 9 . Набор «12 зоны» как B, так и A A , набор B -11 Zone B , и A «зона 0» (A 0 Punch в сочетании с любыми другими) устанавливает a . Таким образом, буква А , которая составляет (12,1) в формате перфорированной карты, кодируется (B, A, 1) . Символ валюты $ в (11,8,3) перфорированной карте был закодирован в памяти как (B, 8,2,1) . Это позволяет схемам конвертировать между форматом перфорированной карты и внутренним форматом хранения очень простым с несколькими особыми случаями. Одним из важных специальных случаев является цифра 0 , представленная одиноким ударом 0 в карте, и (8,2) в основной памяти. [ 43 ]

Память о IBM 1620 организована в 6-битные адресные цифры, обычные 8, 4, 2, 1 плюс F , используемые в качестве бита флага и C , нечетный пробег паритета. BCD Альфамерики кодируются с использованием цифрных пар, с «зоной» в цифре с четной подачей и «цифра» в цифровой цифре с нечетным адресом, а «зона» связана с 12 , 11 и 0 «ударами» как удары »как в серии 1400. Входное/выходное трансляционное оборудование преобразовано между парами внутренней цифры и внешними стандартными 6-битными кодами BCD.

В десятичной архитектуре IBM 7070 , IBM 7072 и IBM 7074 Альфамерики кодируются с использованием пары цифров (используя код с двумя из пяти в цифрах, а не в BCD) 10-значного слова, с «зоной» в левая цифра и «цифра» в правой цифре. Входное/выходное трансляционное оборудование преобразовано между парами внутренней цифры и внешними стандартными 6-битными кодами BCD.

С введением System/360 BCD IBM расширил 6-битную Alphamerics до 8-битного EBCDIC, что позволило добавить еще много символов (например, строчные буквы). тип данных с переменной длиной численный Также реализуется также реализован , предоставляющий инструкции по машине, которые выполняют арифметику непосредственно на упакованных десятичных данных.

В IBM 1130 и 1800 Packed BCD поддерживается в программном обеспечении коммерческим пакетом подпрограммы IBM.

Сегодня данные BCD по -прежнему широко используются в базах данных IBM, таких как IBM DB2 и процессоры, такие как Z/Architecture и Power6 , и более поздние Power ISA процессоры . В этих продуктах BCD обычно зонирован BCD (как в EBCDIC или ASCII), упакованной BCD (две десятичные цифры за байт) или «чистый» кодирование BCD (одна десятичная цифра, хранящаяся в виде BCD в низких четырех битах каждого байта) Полем Все они используются в аппаратных регистрах и обработчиках, а также в программном обеспечении.

Другие компьютеры

[ редактировать ]

Digital Equipment Corporation Vax Серия включает в себя инструкции , которые могут выполнять арифметику непосредственно на упакованных данных BCD и преобразовать между упакованными данными BCD и другими целочисленными представлениями. [ 41 ] Переполненный формат BCD VAX совместим с тем, что на IBM System/360 и более поздние совместимых процессоров IBM. Реализации MicroVax и более поздних действий VAX отказались от этой способности из процессора, но сохранили совместимость с кодом с более ранними машинами, внедрив пропущенные инструкции в библиотеке программного обеспечения, поставляемой операционной системой. Это вызывается автоматически с помощью обработки исключений , когда возникают несуществующие инструкции, так что программы, использующие их, могут выполняться без модификации на новых машинах.

Многие процессоры имеют аппаратную поддержку для кодируемой BCD целочисленной арифметики. Например, 6502 , [ 44 ] [ 45 ] серия Motorola 68000 , [ 46 ] и серия X86 . [ 47 ] Архитектура Intel X86 поддерживает уникальный 18-значный (десяти-байтовый) формат BCD , который можно загрузить и хранить в регистрах с плавающей запятой, откуда можно выполнить вычисления. [ 48 ]

На более поздних компьютерах такие возможности почти всегда реализуются в программном обеспечении, а не на наборе инструкций ЦП, но числовые данные BCD по -прежнему чрезвычайно распространены в коммерческих и финансовых приложениях.

Существуют хитрости для реализации упакованных BCD и зонированных десятичных актуальных операций с добавлением-или субтрактом с использованием коротких, но трудности для понимания последовательностей словесной логики и бинарных арифметических операций. [ 49 ] Например, следующий код (записанный в C ) вычисляет без знакового 8-значного упакованного добавления BCD с использованием 32-битных бинарных операций:

uint32_t BCDadd(uint32_t a, uint32_t b)
{
    uint32_t t1, t2;    // unsigned 32-bit intermediate values

    t1 = a + 0x06666666;
    t2 = t1 ^ b;                   // sum without carry propagation
    t1 = t1 + b;                   // provisional sum
    t2 = t1 ^ t2;                  // all the binary carry bits
    t2 = ~t2 & 0x11111110;         // just the BCD carry bits
    t2 = (t2 >> 2) | (t2 >> 3);    // correction
    return t1 - t2;                // corrected BCD sum
}

BCD в электронике

[ редактировать ]

BCD распространен в электронных системах, где должно отображаться числовое значение, особенно в системах, состоящих исключительно из цифровой логики, и не содержащих микропроцессора. Используя BCD, манипулирование численными данными для отображения может быть значительно упрощено, обрабатывая каждую цифру как отдельную отдельную подсветку.

Это гораздо более тесно соответствует физической реальности оборудования для дисплея-дизайнер может выбрать, например, использовать серию отдельных идентичных семисегментных дисплеев для построения измерения. Если бы числовое количество хранилось и манипулировало чистым бинарным, взаимодействие с таким дисплеем потребовало бы сложной схемы. Следовательно, в тех случаях, когда расчеты относительно просты, работа с BCD может привести к общей более простой системе, чем преобразование в бинарный и из бинарного. Большинство карманных калькуляторов делают все свои расчеты в BCD.

Тот же аргумент применяется, когда аппаратное обеспечение этого типа использует встроенный микроконтроллер или другой небольшой процессор. Часто представлять числа внутри в формате BCD приводит к меньшему коду, поскольку преобразование из или двоичного представления может быть дорогостоящим для таких ограниченных процессоров. Для этих приложений некоторые небольшие процессоры оснащены выделенными арифметическими режимами, которые помогают при написании процедур, которые манипулируют количествами BCD. [ 50 ] [ 51 ]

Сравнение с чистым бинарным

[ редактировать ]

Преимущества

[ редактировать ]
  • Масштаб мощностью 10 проста.
  • Закругление на границе десятичной цифры проще. Добавление и вычитание в десятичном виде не требуют округления. [ сомнительно - обсудить ]
  • Выравнивание двух десятичных чисел (например, 1,3 + 27,08) - это простой, точный сдвиг.
  • Преобразование в форму символа или для отображения (например, в текстовый формат, такой как XML , или для привода сигналов для дисплея с семью сегментами ), представляет собой простое отображение для каждого цифра и может быть сделано в линейном ( O ( n )) время. Преобразование из чистого двоичного знака включает в себя относительно сложную логику, которая охватывает цифры, и для больших чисел алгоритм преобразования линейного времени не известен (см. Бинарное число § Преобразование в другие системы чисел и из них ).
  • Многие неинтегральные значения, такие как десятичное 0,2, имеют бесконечное представление о местах в двоичном языке (.001100110011 ...), но имеют конечную ценность в десятичном кодировании бинарной кодировки (0,0010). Следовательно, система, основанная на десятичных значениях, кодируемых двоичными кодировками, позволяет избежать ошибок, представляющих и расчета таких значений. Это полезно в финансовых расчетах.

Недостатки

[ редактировать ]
  • Практические существующие реализации BCD обычно медленнее, чем операции на бинарных представлениях, особенно в встроенных системах, из -за ограниченной поддержки процессоров для собственных операций BCD. [ 52 ]
  • Некоторые операции более сложны для реализации. Дополнителям требуется дополнительная логика, чтобы заставить их обернуть и генерировать перенос рано. Кроме того, для BCD требуется на 15-20 процентов больше схем по сравнению с чистым бинарным. [ Цитация необходима ] Умножение требует использования алгоритмов, которые являются несколько более сложными, чем сдвиг-маски ( бинарное умножение , требующее двоичных сдвигов и добавлений или эквивалентного, требуемого на цифры или группы цифр).
  • Стандартному BCD требуется четыре бита на цифру, примерно на 20 процентов больше места, чем двоичное кодирование (отношение 4 бита к Log 2 10 битов - 1,204). При упаковке так, чтобы три цифры были закодированы в десять битов, накладные расходы на хранение значительно уменьшаются, за счет кодирования, которая не выровнена с 8-битными границами байтов, распространенных на существующем оборудовании, что приводит к более медленной реализации в этих системах.

Репрезентативные вариации

[ редактировать ]

Существуют различные реализации BCD, которые используют другие представления для чисел. Программируемые калькуляторы, изготовленные Texas Instruments , Hewlett-Packard , и другие, как правило, используют формат BCD с плавающей точкой , обычно с двумя или тремя цифрами для (десятичного) показателя. Дополнительные биты цифры знака могут использоваться для обозначения особых числовых значений, таких как бесконечность , недостаточный поток / переполнение и ошибка (мигающий дисплей).

Подписанные вариации

[ редактировать ]

Подписанные десятичные значения могут быть представлены несколькими способами. Например, язык программирования COBOL поддерживает пять зонированных десятичных форматов, каждый из которых кодирует числовый знак по -разному:

Тип Описание Пример
Без знака знака Нет F1 F2 F3
Подписанный след (канонический формат) Знак кусок в последнем (наименьшем значительном) байте F1 F2 C3
Подписано лидерство (Overplunch) Знак кусок в первом (наиболее значимом) байте C1 F2 F3
Подписанный следующий Отдельный байт персонажа знака ( '+' или '−') после цифрных байтов F1 F2 F3 2B
Подписано ведущее отдельное Отдельный байт персонажа знака ( '+' или '−') предшествует цифровым байтам 2B F1 F2 F3

Телефония Десятичная кода (TBCD)

[ редактировать ]

3GPP разработал TBCD , [ 53 ] Расширение в BCD, где оставшиеся (неиспользованные) битовые комбинации используются для добавления определенных телефонии , персонажей [ 54 ] [ 55 ] с цифрами, похожими на те, которые встречаются в телефонных клавиатур оригинальном дизайне .

Десятичный
цифра
TBCD
8 4 2 1
* 1 0 1 0
# 1 0 1 1
а 1 1 0 0
беременный 1 1 0 1
в 1 1 1 0
Используется в качестве наполнителя, когда есть нечетное количество цифр 1 1 1 1

Упомянутый документ 3GPP определяет TBCD-стринг с заменой шлам в каждом байте. Биты, октеты и цифры, индексированные из 1, биты справа, цифры и октеты слева.

биты 8765 октета N Кодирования цифры 2 N

Биты 4321 из цифровой цифры октета n 2 ( n - 1) + 1

Значение числа 1234, станет 21 43 в TBCD.

Этот формат используется в современной мобильной телефонии для отправки набранных номеров, а также идентификатора оператора , IMEI , IMSI (SUPI), ET.C. [ 56 ] [ 57 ]

Альтернативные кодировки

[ редактировать ]

Если ошибки в представлении и вычислении более важны, чем скорость преобразования на дисплей и с него, может использоваться масштабированное двоичное представление, которое хранит десятичное число в качестве бинарного целого числа и бинарного знакового десятичного показателя. Например, 0,2 может быть представлено как 2 × 10 −1 .

Это представление обеспечивает быстрое умножение и деление, но может потребовать смещения на 10 во время добавления и вычитания, чтобы выровнять десятичные точки. Это уместно для применений с фиксированным количеством десятичных знаков, которые затем не требуют этой корректировки - особенно финансовых применений, где обычно достаточно 2 или 4 цифр после десятичной точки. Действительно, это почти форма арифметики с фиксированной точкой, положение точки радикса поскольку подразумевается .

Кодировки герца них и Чен-хо обеспечивают логические преобразования для преобразования групп из трех кодируемых BCD цифр в 10-битные значения и из [ NB 1 ] Это может быть эффективно закодировано в аппаратном обеспечении только с 2 или 3 задержками затвора. Плотно упакованная десятичная (DPD) - аналогичная схема [ NB 1 ] Это используется для большей части значения , за исключением цифры свинца, для одного из двух альтернативных десятичных кодировков, указанных в стандарте IEEE 754-2008 с плавающей запятой.

Приложение

[ редактировать ]

BIOS часовой во многих персональных компьютерах хранит дату и время в BCD, потому что чип MC6818 в реальном времени, используемый в оригинальном ПК IBM на материнской плате, предоставил время, закодированное в BCD. Эта форма легко преобразуется в ASCII для отображения. [ 58 ] [ 59 ]

используют 8-битные компьютеры Atari формат BCD для номеров с плавающей запятой. Процессор MOS Technology 6502 имеет режим BCD для инструкций с добавлением и вычитанием. Программное обеспечение PSion Organizer 1, представленное производителем компьютера PSION, также использует BCD для реализации плавающей запятой; Более поздние модели PSion используют исключительно бинар.

Ранние модели PlayStation 3 хранят дату и время в BCD. Это привело к мировому отключению консоли 1 марта 2010 года. Последние две цифры года, хранящиеся как BCD, были неверно истолкованы как 16, вызвавшие ошибку в дату подразделения, что делает большинство функций неработоспособными. Это было названо проблемой 2010 года .

[ редактировать ]

В деле 1972 года Gottschalk v. Benson Верховный суд США отменил решение нижестоящего суда , которое позволило патент на преобразование кодируемых BCD чисел в бинар на компьютер.

В решении отмечалось, что патент «полностью превзойдет математическую формулу и в практическом эффекте будет патентом на сам алгоритм ». [ 60 ] Это было знаковое суждение, которое определило патентоспособность программного обеспечения и алгоритмов .

Смотрите также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Подпрыгнуть до: а беременный в В стандартном упакованном 4-битном представлении существует 16 состояний (четыре бита для каждой цифры) с 10 тетрадами и 6 псевдоотетрадами , тогда как в более плотно упакованных схемах, таких как герц , кань-хо или DPD- кодики. , только 24 неиспользованных штата в 1024 штатах (10 бит для трех цифр).
  2. ^ Подпрыгнуть до: а беременный в дюймовый и Состояния кода (показаны черным) за пределами десятичного диапазона 0–9 указывают на дополнительные состояния не BCD-варианта кода. В варианте кода BCD, обсуждаемом здесь, они псевдо-тетрады.
  3. ^ Код Aiken является одним из нескольких 2 4 2 1 кодов. Он также известен как 2* 4 2 1 код.
  4. ^ Код Jump-at-8 также известен как несимметричный 2 4 2 1 код.
  5. ^ Код Petherick также известен как Кодекс Королевского самолета (RAE).
  6. ^ Тип кода О'Брайена также известен как код Уоттс или ватт, отражающий десятичный (WRD) код.
  7. ^ Серый код Excess-3 также известен как Grey - Stibitz Code.
  8. ^ Подпрыгнуть до: а беременный Аналогичным образом, несколько символов часто были упакованы в машинные слова на миникомпьютерах , см. IBM Squoze и Dec Radix 50 .
  1. ^ Intel. «Руководство по архитектуре IA32» (PDF) . Intel . Архивировано (PDF) из оригинала на 2022-10-09 . Получено 2015-07-01 .
  2. ^ Подпрыгнуть до: а беременный Конечно, Райнер (1970-02-01). «1.5.3 Конверсия двоичные зашифрованные десятичные цифры» [1.5.3 Преобразование бинарных кодированных десятичных чисел]. Цифровые вычислительные машины - введение [ цифровой компьютер - в введение ]. Коллекция Göschen (на немецком языке). Том. Берлин, Германия: Walter de Gruyter & Co. / GJ Göschen'sche Verlagsbuchhandlung [ de ] . Стр  3-11-083160-0 Полем Полем Archiv-Nr. 7990709. Архивировано с оригинала 2020-04-18 . Получено 2020-04-13 . (205 страниц) (NB. Перепечатка первого издания 2019 года доступна под ISBN   3-11002793-3 , 978-3-11002793-8 . Переработанное и расширенное 4 -е издание также существует.)
  3. ^ Подпрыгнуть до: а беременный в Конечно, Райнер (1989) [1988-10-01]. «1,4 коды: двоичные зашифрованные десятичные цифры» [1,4 Коды: двоичные кодированные десятичные цифры]. Цифровые арифметические машины - введение в структуру компьютерного оборудования [ цифровые компьютеры - для введения в структуру компьютерного оборудования ]. Коллекция Göschen (на немецком языке). Vol. Берлин, Германия: Walter de Gruyter & Co. Pp. ISBN  3-11011700-2 Полем п. 25: […] Паттерны 0/1, которые не допускаются, также называются псевдодецимальными. […] (320 страниц)
  4. ^ Schneider, Hans-Jochen (1986). Лексикон информатики и обработки данных (на немецком языке) (2 Ed.). Р. Олденбург Верлаг Мюнхен Вена. ISBN  3-486-22662-2 .
  5. ^ Тафель, Ханс Йёрг (1971). Введение в обработку цифровых данных [ Введение в обработку цифровой информации ] (на немецком языке). Мюнхен: Карл Хансер Верлаг . ISBN  3-446-10569-7 .
  6. ^ Steinbuch, Карл w . Вебер, Вольфганг; Heinemann, Traute, eds. (1974) [1967]. Мягкая обложка информатики - Том II - Структура и программирование систем EDP . Мягкая обложка обработки новостей (на немецком языке). Том. 2 (3 изд.). Берлин, Германия: Springer-Verlag . ISBN  3-540-06241-6 Полем LCCN   73-80607 .
  7. ^ Титце, Ульрих; Шенк, Кристоф (2012-12-06). Усовершенствованные электронные схемы . Springer Science & Business Media . ISBN  978-3642812415 Полем 9783642812415 . Получено 2015-08-05 .
  8. ^ Kowalski, Emil (2013-03-08) [1970]. Ядерная электроника . Springer-Verlag . doi : 10.1007/978-3-642-87663-9 . ISBN  978-3642876639 Полем 9783642876639, 978-3-642-87664-6 . Получено 2015-08-05 .
  9. ^ Ферретти, Витторио (2013-03-13). Словарь электроники, технологии данных и телекоммуникаций / Словарь электроники, вычислений и телекоммуникаций: Часть 1: немецкий-английский / часть 1: немецкий английский . Том 1 (2 изд.). Springer Publishing House. ISBN  978-3642980886 Полем 9783642980886 . Получено 2015-08-05 .
  10. ^ Speiser, Ambrosius Paul (1965) [1961]. Цифровые арифметические системы - основы / технология схемы / метод работы / безопасность работы / Операционная безопасность [ Цифровые компьютеры - Основы / Цепи / Операция / Надежность ] (на немецком языке) (2 изд.). Эт Цюрих , Цюрих, Швейцария: Springer-Verlag / IBM . п. 209. LCCN   65-14624 . 0978.
  11. ^ Cowlishaw, Mike F. (2015) [1981, 2008]. «Общая десятичная арифметика» . Получено 2016-01-02 .
  12. ^ Эванс, Дэвид Сильвестер (март 1961 г.). «Глава четвертая: вспомогательное оборудование: реле выходного привода и проверки паритета для цифровых средств». Цифровые данные: их вывод и сокращение для анализа и управления процессами (1 изд.). Лондон, Великобритания: Hilger & Watts Ltd / Interscience Publishers . С. 46–64 [56–57] . Получено 2020-05-24 . (8+82 страницы) (NB. 4-битный код BCD 8421 с дополнительным битом паритета , применяемым как наименее значимый бит для достижения нечетного паритета полученного 5-битного кода, также известен как код Ferranti .)
  13. ^ Лала, Параг К. (2007). Принципы современного цифрового дизайна . Джон Уайли и сыновья . С. 20–25. ISBN  978-0-470-07296-7 .
  14. ^ Подпрыгнуть до: а беременный в дюймовый и фон глин час я Дж k л м не Бергер, Эрих Р. (1962). "1.3.3. Die Codierung von Zahlen". Написано в Карлсруэ, Германия. В Стейнбухе, Карл В. (ред.). Taschenbuch der nachrichtenverarbeitung (на немецком языке) (1 изд.). Берлин / Геттинген / Нью-Йорк: Springer-Verlag OHG . С. 68–75. LCCN   62-14511 . (Nb. Показанный код Kautz ( II ), содержащий все восемь доступных двоичных состояний с нечетным количеством 1s, является небольшой модификацией оригинального кода Kautz ( I ), содержащего все восемь состояний с ровным количеством 1, так что, чтобы Инверсия самых значительных битов создаст комплемент 9S .)
  15. ^ Подпрыгнуть до: а беременный в дюймовый и фон Kämmerer, Wilhelm [на немецком языке] (май 1969 г.). «II.15. Структура: информационная презентация в машине». Написано в Йене, Германия. В Фрюхауфе, Ганс [на немецком языке] ; Kämmerer, Wilhelm; Schröder, короткий; Винклер, Хельмут (ред.). Цифровые машины - теория, структура, технология, программирование . Электронная арифметика и правила (на немецком языке). Том 5 (1 изд.). Берлин, Германия: Akademie-Verlag Gmbh . п. 161. Лицензия №. . Заказ №
  16. ^ Подпрыгнуть до: а беременный в дюймовый и фон глин час я Дж k л м не а п Q. Доктор, ребята; Steinhauer, Jergs (1973-06-18). Цифровая электроника . Техническая библиотека Philips (PTL) / Macmillan Education (Перепечатка 1 -го английского языка изд.). Endhoves, Ninderlands: Macmillan Press Ltd. / Nv philips 'gloldmasphabing . Doi : 10,1007 / 978-1-349-01417-0 . ISBN  978-1-349-01419-4 Полем SBN  333-13360-9 Полем Архивировано из оригинала 2020-07-16 . Получено 2020-05-11 . (270 страниц) (nb. Это основано на переводе тома I двухтомного немецкого издания.)
  17. ^ Подпрыгнуть до: а беременный в дюймовый и фон глин час я Дж k л м не а п Q. Дортер, Фолкерт; Steinhauer, Jürgen (1975) [1969]. Цифровая электроника в измерении технологии и обработки данных: теоретические основы и технологии схемы . Книги Philips Specialist (на немецком языке). Vol. Гамбург, Германия: Deutsche Philips Gmbh . п. 50. ISBN  3-87145-272-6 Полем (XII+327+3 страницы) (NB. Немецкое издание тома I было опубликовано в 1969, 1971 году, два издания в 1972 и 1975 годах. Том II был опубликован в 1970, 1972, 1973 и 1975 годах.)
  18. ^ Подпрыгнуть до: а беременный в дюймовый и фон Кауц, Уильям Х. (июнь 1954 г.). «IV. Примеры A. Двоирные коды для десятичных декораций, n = 4». Оптимизированные данные, кодирующие данные для цифровых компьютеров . Конвенция «IRE», Национальное собрание 1954 года, часть 4 - Электронные компьютеры и теория информации. Сессия 19: Теория информации III - скорость и вычисления. Стэнфордский научно -исследовательский институт, Стэнфорд, Калифорния, США: IRE, стр. 47–57 [49, 51–52, 57]. Архивировано из оригинала 2020-07-03 . Получено 2020-07-03 . п. 52: […] Последний столбец [таблицы II], помеченный «Лучший», дает максимальную долю возможна с любым кодом, а именно 0,60 - черт возьми, снова лучше, чем любой обычный код. Этот экстремальный достигается с десятью известными вершинами графика на рис. 4 для n = 4, или, фактически, с любым набором из десяти комбинаций кода, которые включают все восемь с четными (или всеми восьми со странными). Количество «1». Во втором и третьем рядах таблицы II перечислены среднее и пиковое десятичное изменение в течение незамеченной единственной бинарной ошибки и были получены с использованием уравнений гл. II для Δ 1 и Δ 1 . Индекс путаницы для десятичных декораций с использованием критерия «десятичных изменений» принимается как c ij = | i - j | i, j = 0, 1,… 9. Опять же, «Лучшее» возможное расположение (то же самое для среднего и пика), одно из которых показано на рис. 4, значительно лучше, чем обычные коды. […] Рис. 4 Код минимального конфузии для десятичных актов . […] Δ 1 = 2 Δ 1 = 15 […] [1] [2] [3] [4] [5] [ 6 ] [7] [8] [9] [10] [11] (11 страниц ) (Nb. Помимо комбинаторного набора 4-битных BCD «коды минимального конфузии для десятичных десятиц», из которых автор иллюстрирует только один явно (здесь воспроизводится как код I ) в форме 4-битного графика, автор также показывает аналоговых данных» в форме таблицы кода, который, однако, не 4-битный 4-битный «двоичный код для здесь обсуждается .
  19. ^ Подпрыгнуть до: а беременный в Чинал, Джин П. (январь 1973 г.). "Коды". Написано в Париже, Франция. Методы проектирования для цифровых систем . Перевод Престона, Алан; Лето, Артур (1 -е английское изд.). Берлин, Германия: Akademie-Verlag / Springer-Verlag . п. 46. ​​doi : 10.1007/978-3-642-86187-1_3 . ISBN  978-0-387-05871-9 Полем Лицензия № 202-100/542/73. Приказ № 7617470 (6047) ES 19 B 1/20 K 3 . Получено 2020-06-21 . (XVIII+506 страниц) (NB. Оригинальная книга French 1967 была названа «Булевые методы и арифметические калькуляторы», опубликованная Dunod Editions [ FR ] .)
  20. ^ Подпрыгнуть до: а беременный Военный справочник: кодеры - угол вала для цифрового (PDF) . Министерство обороны США . 1991-09-30. MIL-HDBK-231A. Архивировано (PDF) из оригинала 2020-07-25 . Получено 2020-07-25 . (NB. Заменяет MIL-HDBK-231 (AS) (1970-07-01).)
  21. ^ Подпрыгнуть до: а беременный Стоп, Герберт (март 1960 г.). Написано в Лицельстттен, Германия. Рунге, Вильгельм Толме (ред.). «Определение кода и логическая схема десятилетия подсчета». Telefunken-Zeitung (TZ) -техническая и научная связь от Telefunken GmbH (на немецком языке). 33 (127). Берлин, Германия: Telefunken : 13–19. (7 страниц)
  22. ^ Подпрыгнуть до: а беременный Бораки, Лоренц; Диттманн, Йоахим (1971) [июль 1970, 1966, осень 1965]. «2.3 Сломанные коды в технологии цифрового измерения». Написано в Крефельде / Карлсруэ, Германия. Цифровая технология измерения: введение (на немецком языке) (2 изд.). Берлин / Гейдельберг, Германия: Springer-Verlag . С. 10–23 [12–14]. Doi : 10.1007/978-3-642-80560-8 . ISBN  3-540-05058-2 Полем LCCN   75-131547 . ISBN   978-3-642-80561-5 . (viii+252 страницы) 1 -е издание
  23. ^ Белый, Гарленд С. (октябрь 1953 г.). «Кодированные десятичные численные системы для цифровых компьютеров». Материалы института радиоинженеры . 41 (10). Институт инженеров радио (IRE): 1450–1452. doi : 10.1109/jrproc.1953.274330 . EISSN   2162-6634 . ISSN   0096-8390 . S2CID   51674710 . (3 страницы)
  24. ^ «Различные типы бинарных кодов» . Электронный хаб . 2019-05-01 [2015-01-28]. Раздел 2.4 5211 Код. Архивировано из оригинала 2020-05-18 . Получено 2020-08-04 .
  25. ^ Пол, Матиас Р. (1995-08-10) [1994]. "Unterbrechungsfreier Schleifencode" [непрерывный код цикла]. 1.02 (на немецком языке) . Получено 2008-02-11 . (Nb. Автор назвал этот код schleifencode (английский: «код цикла»). Он отличается от серого кода BCD только при кодировании состояния 0, чтобы сделать его циклическим кодом с дистанционным целым полным кругом для применений с . Образец кода с общеразлитным кодом позволяет проводить самопроверку цикла и использовать линии данных для непрерывного распределения мощности.)
  26. ^ Грей, Фрэнк (1953-03-17) [1947-11-13]. Связь с кодом импульса (PDF) . Нью -Йорк, США: Bell Telephone Laboratories, Incorporated . Патент США 2 632 058 . Сериал № 785697. Архивировано (PDF) из оригинала на 2020-08-05 . Получено 2020-08-05 . (13 страниц)
  27. ^ Гликсон, Гарри Роберт (март 1957 г.). "Можете ли вы воспользоваться циклическим бинарным кодом?" Полем Управление инженерией . 4 (3). Техническая издательская компания , подразделение Dun-Donnelley Publishing Corporation, Dun & Bradstreet Corp .: 87–91. ISSN   0010-8049 . (5 страниц)
  28. ^ Подпрыгнуть до: а беременный Ледли, Роберт Стивен ; Ротоло, Луи с.; Уилсон, Джеймс Брюс (1960). «Часть 4. Логический дизайн цифровой коммерческой схемы; Глава 15. Серийные арифметические операции; глава 15-7. Дополнительные темы». Цифровой компьютер и управление инженерией (PDF) . Серия McGraw-Hill Electrical and Electronic Engineering (1 изд.). Нью-Йорк, США: McGraw-Hill Book Company, Inc. (Принтер: The Maple Press Company, Йорк, Пенсильвания, США). С. 517–518. ISBN  0-07036981-X Полем ISSN   2574-7916 . LCCN   59015055 . OCLC   1033638267 . OL   5776493M . SBN  07036981-X Полем Полем ARK:/13960/T72V3B312. Архивировано (PDF) из оригинала на 2021-02-19 . Получено 2021-02-19 . п. 517: […] Циклический код выгодна в основном при использовании ретрансляционных цепей, поскольку тогда липкое реле не даст ложное состояние, поскольку он задерживается при переходе от одного циклического номера к другому. Есть много других циклических кодов, которые имеют это свойство. […] [12] (xxiv+835+1 страницы) (Nb. Ledley классифицировал описанный циклический код как циклический бинарный код с кодированием в циклическом десятичном коде .)
  29. ^ Подпрыгнуть до: а беременный в дюймовый Савард, Джон Дж.Г. (2018) [2006]. «Десятичные представления» . quadibloc . Архивировано с оригинала 2018-07-16 . Получено 2018-07-16 .
  30. ^ Петерик, Эдвард Джон (октябрь 1953 г.). Циклическая прогрессивная бинарная децимальная система представления чисел (техническая примечание MS15). Фарнборо, Великобритания: Королевское авиационное учреждение (RAE). (4 страницы) (NB. Иногда называется циклической кодированной бинарной кодированной системой представления чисел .)
  31. ^ Петерик, Эдвард Джон; Хопкинс, AJ (1958). Некоторые недавно разработали цифровые устройства для кодирования ротаций валов (техническая примечание MS21). Фарнборо, Великобритания: Королевское авиационное учреждение (RAE).
  32. ^ Подпрыгнуть до: а беременный О'Брайен, Джозеф А. (май 1956) [1955-11-15, 1955-06-23]. «Циклические десятичные коды для аналога цифровых преобразователей» . Сделки Американского института инженеров -электриков, часть I: Коммуникация и электроника . 75 (2). Bell Telephone Laboratories, Whippany, Нью -Джерси, США: 120–122. doi : 10.1109/tce.1956.6372498 . ISSN   0097-2452 . S2CID   51657314 . Бумага 56-21. Архивировано из оригинала 2020-05-18 . Получено 2020-05-18 . (3 страницы) (NB. Эта статья была подготовлена ​​для презентации на Зимнем собрании AIEE, Нью-Йорк, США, 1956-01-30 до 1956-02-03.)
  33. ^ Подпрыгнуть до: а беременный Томпкинс, Говард Э. (сентябрь 1956 г.) [1956-07-16]. «Двуицкие коды бинарных дел на единицу для двух треков» . IRE Transactions на электронных компьютерах . Переписка. EC-5 (3). Школа электротехники Мур , Университет Пенсильвании , Филадельфия, Пенсильвания, США: 139. DOI : 10.1109/tec.1956.5219934 . ISSN   0367-9950 . Архивировано из оригинала 2020-05-18 . Получено 2020-05-18 . (1 страница)
  34. ^ Липпель, Бернхард (декабрь 1955 г.). «Десятичный код для аналого-цифрового преобразования». IRE Transactions на электронных компьютерах . EC-4 (4): 158–159. doi : 10.1109/tec.1955.5219487 . ISSN   0367-9950 . (2 страницы)
  35. ^ Подпрыгнуть до: а беременный в Susskind, Alfred Kriss; Уорд, Джон Эрвин (1958-03-28) [1957, 1956]. «III.F. коды единиц-дистанции / vi.e.2. Отраженные двоичные коды». Написано в Кембридже, штат Массачусетс, США. В Susskind Альфред Крисс (ред.). Примечания по методам аналогового цифрового преобразования . Технологические книги в науке и технике. Тол. 1 (3 изд.). Нью-Йорк, США: Технологическая пресса Массачусетского технологического института / John Wiley & Sons, Inc. / Chapman & Hall, Ltd. с. 3-7–3-8 [3-7], 3-10–3-16 [3-13–3-16], 6-65–6-60 [6-60]. (x+416+2 страницы) (nb. Содержание книги было первоначально подготовлено сотрудниками Laboratorative , Департамент электротехники, MIT , для специальных летних программ, проведенных в 1956 и 1957 годах. Его работа в качестве «кода чтения типа» показана здесь как тип кода II, тогда как код типа I является незначительным деривацией с двумя наиболее значимыми битовыми столбцами, заменяемыми для лучшего иллюстрации симметрии.)
  36. ^ Подпрыгнуть до: а беременный Юэн, Чун-Квонг (декабрь 1977 г.). «Новое представление для десятичных чисел» . IEEE транзакции на компьютерах . C-26 (12): 1286–1288. doi : 10.1109/tc.1977.1674792 . S2CID   40879271 . Архивировано из оригинала 2020-08-08 . Получено 2020-08-08 .
  37. ^ Лукал, Гарольд М. (декабрь 1959 г.). «Арифметические операции для цифровых компьютеров с использованием модифицированного отраженного двоичного файла» . IRE Transactions на электронных компьютерах . EC-8 (4): 449–458. doi : 10.1109/tec.1959.5222057 . ISSN   0367-9950 . S2CID   206673385 . (10 страниц)
  38. ^ Дьюар, Роберт Берридейл Кейт ; Смосна, Мэтью (1990). Микропроцессоры - представление программиста (1 изд.). Институт Куранта , Нью-Йоркский университет , Нью-Йорк, США: издательская компания McGraw-Hill . п. 14. ISBN  0-07-016638-2 Полем LCCN   89-77320 . (xviii+462 страницы)
  39. ^ «Глава 8: Десятичные инструкции». IBM System/370 Принципы работы . IBM . Март 1980.
  40. ^ «Глава 3: представление данных». Руководство по архитектуре PDP-11 . Цифровое оборудование корпорация . 1983.
  41. ^ Подпрыгнуть до: а беременный Руководство по архитектуре VAX-11 . Цифровое оборудование корпорация . 1985.
  42. ^ "Ile RPG ссылка" .
  43. ^ «IBM 1401/1440/1460/1410/7010 Code Code в порядке BCD» (PDF) .
  44. ^ "6502 набор инструкций" . Архивировано с оригинала 2018-05-08.
  45. ^ «NMOS 6502 ОПКОДЫ» . Архивировано с оригинала 2016-01-14.
  46. ^ «Набор инструкций 68000» (PDF) . Архивировано (PDF) из оригинала на 2023-11-20 . Получено 2023-11-21 . (58 страниц)
  47. ^ Intel 64 и IA-32 Architectures Software's Developer Руководство по томе 1: Основная архитектура (PDF) . Intel. Март 2013 г. Раздел 4.7. Архивировано (PDF) из оригинала 2013-04-02 . Получено 2013-04-23 .
  48. ^ «4.7 BCD и упакованные целые числа BCD». Руководство разработчика программного обеспечения Intel 64 и IA-32 Architectures, том 1: Основная архитектура (PDF) . Версия 072. Vol. 1. Intel Corporation . 2020-05-27 [1997]. С. 3–2, 4-9–4-11 [4-10]. 253665-072US. Архивировано (PDF) из оригинала 2020-08-06 . Получено 2020-08-06 . п. 4-10: […] При работе на целых числах BCD в регистрах общего назначения значения BCD могут быть распакованы (одна цифра BCD за байт) или упакованные (две цифры BCD за байт). Значение распакованного целого числа BCD - это двоичное значение низкого полубах (битов от 0 до 3). Высокий полубайт (биты от 4 по 7) может быть любым значением во время добавления и вычитания, но должно быть нулевым во время умножения и деления. Упакованные целые числа BCD позволяют содержать две цифры BCD в одном байте. Здесь цифра в высокой половине байта более значима, чем цифра в низкой половине байта. […] При работе на целых числах BCD в регистрах данных x87 FPU значения BCD упаковываются в 80-битный формат и называются десятичными целыми числами. В этом формате первые 9 байтов содержат 18 цифр BCD, 2 цифры за байт. А Наименьшая значительная цифра содержится в нижней половине байта байта 0, а наиболее значимая цифра содержится в верхнем полу-байте байта 9. Наиболее значимый бит байта 10 содержит бит знака (0 = положительный и 1 ; отрицательный = Отрицательные десятичные целые числа не хранятся в форме дополнения двух ; Они отличаются от положительных десятичных целых чисел только по знаке. Диапазон десятичных целых чисел, который может быть закодирован в этом формате, составляет -10 18 + 1-10 18 - 1. Десятичное целочисленное формат существует только в памяти. Когда десятичное целое число загружается в регистр данных x87 FPU, он автоматически преобразуется в формат с плавающей точкой с двойным исходом . Все десятичные целые числа точно представлены в формате двойного расширенного определения. […] [13]
  49. ^ Джонс, Дуглас В. (2015-11-25) [1999]. «BCD арифметика, учебник» . Арифметические учебники . Айова -Сити, Айова, США: Университет Айовы , факультет компьютерных наук . Получено 2016-01-03 .
  50. ^ Университет Аликанте. «Архитектура на основе кордики для высокопроизводительных десятичных вычислений» (PDF) . IEEE . Архивировано (PDF) из оригинала 2010-01-05 . Получено 2015-08-15 .
  51. ^ «Десятичное вращение кордика на основе отбора путем округления: алгоритм и архитектура» (PDF) . Британское компьютерное общество . Архивировано (PDF) из оригинала на 2022-10-09 . Получено 2015-08-14 .
  52. ^ Матур, Адитья П. (1989). Введение в микропроцессоры (3 изд.). Tata McGraw-Hill Publishing Company Limited . ISBN  978-0-07-460222-5 .
  53. ^ 3GPP TS 29.002: Спецификация мобильного приложения (MAP) (Технический отчет). 2013. Sec. 17.7.8 Общие типы данных.
  54. ^ «Протоколы сигнализации и рекомендации по переключению (SPS) для использования абстрактного синтаксического обозначения One (ASN.1) в протоколах телекоммуникационного применения» (PDF) . п. 15. Архивированный (PDF) из оригинала 2013-12-04.
  55. ^ «Спецификация мобильной приложения XOM (XMAP)» (PDF) . п. 93. Архивировано из оригинала (PDF) 2015-02-21 . Получено 2013-06-27 .
  56. ^ «Протокол неактивного состава (NAS) для системы 5G (5GS); этап 3. (3GPP TS 24.501 Версия 16.10.0 Выпуск 16) TS 24.501 Выпуск 16.10.0» (PDF) . ETSI и 3GPP . Архивировано (PDF) из оригинала на 2022-02-17 . Получено 2022-02-26 . (TS 24.501)
  57. ^ «Цифровая клеточная телекоммуникационная система (фаза 2+) (GSM); универсальная мобильная телекоммуникационная система (UMTS); LTE; 5G; нумерация, адресация и идентификация (3GPP TS 23.003 Версия 16.8.0 Выпуск 16)» (PDF) . ETSI и 3GPP . Архивировано (PDF) из оригинала на 2022-02-26 . Получено 2022-02-26 . (TS 23.003)
  58. ^ «Счетчики таймера на ПК IBM» (PDF) . www.se.ecu.edu.au. ​Архивировано из оригинала (PDF) на 2008-10-10 . Получено 2022-05-22 . (7 страниц)
  59. ^ MC6818
  60. ^ Gottschalk v. Benson , 409 U.S. 63, 72 (1972).

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f30bcfd41b7f85189496ab967d09f072__1726528320
URL1:https://arc.ask3.ru/arc/aa/f3/72/f30bcfd41b7f85189496ab967d09f072.html
Заголовок, (Title) документа по адресу, URL1:
Binary-coded decimal - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)