Interested Article - Двоично-десятичный код

Перевод десятичных цифр в двоично-десятичный код

Двоично-десятичный код ( англ. binary-coded decimal ), BCD , 8421-BCD  — форма записи рациональных чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода . Таким образом, каждая тетрада двоично-десятичного числа может принимать значения от 0000 2 (0 10 ) до 1001 2 (9 10 ).

Например, десятичное число 311 10 будет записано в двоичной системе счисления в двоичном коде как 1 0011 0111 2 , а в двоично-десятичном коде как 0011 0001 0001 BCD .

Описание

При помощи 4 бит можно закодировать 16 цифр. Из них используются 10. Остальные 6 комбинаций в двоично-десятичном коде являются запрещёнными. Таблица соответствия двоично-десятичного кода и десятичных цифр:

Разрешённые комбинации
Двоично-десятичный код Десятичный код
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9

Двоично-десятичный код также применяется в телефонной связи. В этом случае кроме десятичных цифр кодируются символы '*', '#' и некоторые другие. Для записи этих символов в двоично-десятичном коде используются запрещенные комбинации:

Запрещённые дополнительные комбинации
Двоично-десятичный код Десятичный код
1 0 1 0 * (звёздочка)
1 0 1 1 # (решётка)
1 1 0 0 + (плюс)
1 1 0 1 - (минус)
1 1 1 0 , (десятичная запятая)
1 1 1 1 Символ гашения

Преимущества и недостатки

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

Часы с двоично-десятичной системой индикации. В этих часах каждая колонка отображает десятичное число в двоично-десятичной системе.
  • Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
  • Для дробных чисел (как с фиксированной , так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
  • Упрощены умножение и деление на 10, а также округление .

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

Недостатки

  • Требует больше памяти.
  • Усложнены арифметические операции. Так как в 8421-BCD используются только 10 возможных комбинаций 4-битового поля вместо 16, существуют запрещённые комбинации битов: 1010(10 10 ), 1011(11 10 ), 1100(12 10 ), 1101(13 10 ), 1110(14 10 ) и 1111(15 10 ).

Поэтому, при сложении и вычитании чисел формата 8421-BCD действуют следующие правила:

  1. При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110 (= 6 10 = 16 10 — 10 10 : разница количеств комбинаций полубайта и используемых значений).
  2. При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация (число, большее 9), необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.
  3. При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110.

Пример операции сложения двоично-десятичных чисел:

Требуется: Найти число A = D + C, где D = 3927, C = 4856

Решение: Представим числа D и C в двоично-десятичной форме:
D = 3927 10 = 0011 1001 0010 0111 BCD
C = 4856 10 = 0100 1000 0101 0110 BCD

Суммируем числа D и С по правилам двоичной арифметики:

       *         ** 
  0011 1001 0010 0111
+ 0100 1000 0101 0110
  ___________________
= 1000 0001 0111 1101 - Двоичная сумма
+      0110      0110 - Коррекция
  ___________________
  1000 0111 1000 0011

'*' — тетрада, из которой был перенос в старшую тетраду

'**' — тетрада с запрещённой комбинацией битов

В тетраду, помеченную символом *, добавляем шестёрку, так как по правилам двоичной арифметики перенос унёс с собой 16, а по правилам десятичной арифметики должен был унести 10. В тетраду, помеченную символом **, добавляем шестёрку и разрешаем распространение переноса, так как комбинация битов 1101 (что соответствует десятичному числу 13) является запрещённой.

Другие системы кодирования

В системе одна десятичная цифра кодируется 5 битами, из которых 2 бита установлены в 1, а 3 бита — в 0, что даёт ровно 10 комбинаций. Такая система обеспечивает лучшее обнаружение ошибок, поскольку изменение одного бита всегда даст недопустимую комбинацию; также всегда обнаруживаются однонаправленные изменения (несколько изменений 0→1 или 1→0). Кодирование «2 из 5» использовалось в компьютерах серий , и ; также применяется в некоторых странах для маркирования почты штрих-кодом .

позволяют разместить 3 десятичные цифры в 10 битах (2 10 =1024 комбинации, что достаточно для 3 десятичных цифр), причём кодирование устроено так, что преобразование между 10-битным кодом и тремя отдельными десятичными цифрами можно осуществить с помощью простой и быстрой логической схемы. Такое кодирование используется в десятичных числах с плавающей запятой, описанных в стандарте IEEE 754-2008 .

См. также

Источник —

Same as Двоично-десятичный код