Идеального по всем параметрам двоично-десятичного кода нет: все коды требуют введения коррекции при сложении, причём, выявление признаков коррекции в некоторых кодах является довольно непростой задачей.
Можно выделить совокупность параметров, характеризующих двоично-десятичные коды, и по каждому параметру указать «лучшие» и «худшие» коды. Однако, интегральной характеристики, позволяющей выделить лучший код по совокупности параметров, получить не удаётся в силу того, что затруднительно определить весовые коэффициенты для каждого параметра в этой интегральной характеристике. Кроме того, на выбор кода реально влияют множество трудно учитываемых условий и факторов.Среди главных параметров рассмотрим следующие.
1. Простота формирования обратного кода, иначе говоря, обладает ли код свойством самодополняемости. Здесь можно указать «худший» по этому параметру код – код с естественными весами 8-4-2-1, остальные рассмотренные коды обладают свойством самодополняемости.
2. Простота обнаружения признаков коррекции. Здесь очевидно, что проще зафиксировать единицу переноса, чем выявлять «неправильные» тетрады, как в коде 8-4-2-1, или анализировать тетраду по признаку, больше или меньше она пятёрки, как в коде 2-4-2-1. По этому параметру код 2-4-2-1 самый сложный, за ним по сложности можно поставить код 8-4-2-1.
3. Частота введения коррекции или какая доля тетрад или пентад корректируется. «Худший» по этому параметру код 8-4-2-1+3, который требует коррекции всех 100% тетрад, в остальных рассмотренных кодах корректируется примерно 50% тетрад или пентад.
Практически во всех рассмотренных двоично-десятичных кодах по одному корректирующему коду, для хранения которого необходимо дополнительное оборудование,поэтому трудно отдать предпочтение какому-либо из кодов.
На практике чаще других используется код с естественными весами 8-4-2-1. Несмотря на отсутствие свойства самодополняемости кодирование десятичных цифр их двоичными эквивалентами, видимо, привычнее для человека.
Алгоритмы умножение двоично-десятичных чисел
В двоично-десятичной арифметике умножение можно выполнять традиционно, взяв за основу известные четыре способа умножения, причём, сдвиги в каждом такте цикла умножения выполняются на один десятичный разряд и вводится соответствующая коррекция. Основной недостаток этого подхода – большое количество операций сложения и, как следствие, невысокое быстродействие.
Большой интерес представляют некоторые оригинальные методы умножения двоично-десятичных чисел, с которыми предлагается познакомиться студентам.
Табличный метод умножения
В основе метода - древнейший способ ручного счёта. При реализации на ЭВМ используются быстродействующие постоянные запоминающие устройства (ПЗУ), построенные по канонической схеме «дешифратор-шифратор». Это обеспечивает высокую однородность арифметико-логического устройства (АЛУ) вычислительной машины.
В ПЗУ хранятся две таблицы, содержащие результаты умножения одноразрядных десятичных чисел: в таблице слева хранятся младшие разряды, справа – старшие разряды произведений.
При умножении с младших разрядов множителя табличным методом образуются два частичных произведения: последовательность цифр младших разрядов и сдвинутая влево на один десятичный разряд последовательность цифр старших разрядов произведения.
Достоинство метода – большое быстродействие за счёт одновременного и независимого образования всех разрядов частичных произведений. К недостаткам метода можно отнести дополнительные затраты памяти для хранения таблиц.