Двоично-десятичный код, BCD
8421-BCD — форма записи рациональных чисел, когда каждый
десятичный разряд числа записывается в виде его четырёхбитного кода(двоичного).
Например, десятичное число 31110 будет записано
в в двоичном коде как 1 0011 01112, а в
двоично-десятичном коде как 0011 0001 0001BCD.
При помощи четырёх бит можно
закодировать шестнадцать цифр. Из них используются 10. Остальные 6 комбинаций в
двоично-десятичном коде являются запрещенными.
Двоично-десятичный код также
применяется в телефонной связи. В этом случае кроме десятичных цифр кодируются
символы '*' или '#', или любые другие. Для записи этих символов в
двоично-десятичном коде используются запрещенные комбинации
Преимущества:
·
Для дробных чисел при
переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
·
Упрощены умножение и
деление на 10, а также округление.
По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в
простейших арифметических операциях должен выводить в точности такой же
результат, какой подсчитает человек на бумаге.
Недостатки:
Требует больше памяти.
·
Усложнены
арифметические операции. Так как в 8421-BCD используются только 10 возможных
комбинаций 4-х битового поля вместо 16, существуют запрещённые комбинации
битов: 1010(1010), 1011(1110), 1100(1210),
1101(1310), 1110(1410) и 1111(1510).
Поэтому, при сложении и вычитании чисел формата 8421-BCD
действуют следующие правила:
1.
При сложении
двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший
полубайт, необходимо к полубайту, от которого произошёл перенос, добавить
корректирующее значение 0110 (= 610 = 1610 — 1010:
разница количеств комбинаций полубайта и используемых значений).
2.
При сложении
двоично-десятичных чисел каждый раз, когда встречается недопустимая для
полубайта комбинация (число, большее 9), необходимо к каждой недопустимой
комбинации добавить корректирующее значение 0110 с разрешением переноса в
старшие полубайты.
3.
При вычитании
двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего
полубайта, необходимо провести коррекцию, отняв значение 0110.
Комментариев нет:
Отправить комментарий