Двоично-десятичный код
Материал из Википедии — свободной энциклопедии
Двоично-десятичный код — форма записи целых чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода. Например, число 311 будет записано в двоичном коде как 1 0011 0111, а в двоично-десятичном 0011 0001 0001.
[править] Преимущества и недостатки
[править] Преимущества
- Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
- Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
- Упрощены умножение и деление на 10, а также округление.
По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в простейших арифметических операциях должен выводить в точности такой же результат, какой подсчитает человек на бумаге.
[править] Недостатки
- Усложнены арифметические операции.
- Требует больше памяти.
- В двоично-десятичном коде 8421-BCD существуют запрещённые комбинации битов:
| Запрещённые в 8421-BCD битовые комбинации | ||
|---|---|---|
| 1010 | 1011 | 1100 |
| 1101 | 1110 | 1111 |
Запрещённые комбинации возникают обычно в результате операций сложения, так как в 8421-BCD ипользуются только 10 возможных комбинаций 4-х битового поля вместо 16. Поэтому, при сложении и вычитании чисел формата 8421-BCD действуют следующие правила:
- При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110.
- При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация, необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.
- При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110.
Пример операции сложения двоично-десятичных чисел:
Требуется: Найти число A = D + C, где D = 3927, C = 4856
Решение: Представим числа D и C в двоично десятичной форме: D = 3927 = 0011 1001 0010 0111 C = 4856 = 0100 1000 0101 0110
Суммируем числа D и С по правилам двоичной арифметики:
* **
0011 1001 0010 0111
+ 0100 1000 0101 0110
___________________
= 1000 0001 0111 1101 - Двоичная сумма
+ 0110 0110 - Коррекция
___________________
1000 0111 1000 0011
'*' — тетрада, из которой был перенос в старшую тетраду
'**' — тетрада с запрещённой комбинацией битов
В тетраду помеченую символом * добавляем шестёрку т.к по правилам двоичной арифметики перенос унёс с coбой 16, а по правилам десятичной арифметики должен был унести 10. В тетраду помеченую символом ** добавляем шестёрку и разрешаем распространение переноса так как комбинация битов 1101(что соответствует десятичному числу 13) является запрещённой.
| Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |

