Код с естественными весами 8-4-2-1
Введение
Десятичная система счисления (10 СС) по критерию удобства работы человека с ЭВМ стоит на первом месте. При её использовании отпадает необходимость преобразования входной десятичной информации в двоичную систему счисления (2 СС), а результатов решения – обратно в 10СС. При решении научно-технических задач, характеризуемых сложными вычислениями и относительно небольшими объёмами входной и выходной информации, время на выполнение этих преобразований невелико.
Однако,планово-экономические задачи характеризуются относительно несложными вычислениями и огромными объёмами входной и выходной информации, требуют больших затрат машинного времени на преобразование из 10 СС в 2 СС и обратно. При решении таких задач целесообразно минимизировать время на эти преобразования и использовать специальные двоично-кодированные десятичные системы счисления (2-10 СС).
В таких системах десятичные цифры кодируют двоичными кодами. Минимальное количество двоичных разрядов для кодирования десяти цифр – четыре разряда (тетрада). Однако, тетрада обеспечивает 16 различных двоичных комбинаций, а для кодирования цифр надо взять лишь десять. Поэтому рациональный выбор кодов десятичных цифр потребовал разработки требований к 2-10 кодам.
Основные требования к двоично-десятичным кодам.
1. Однозначность соответствия пары «десятичная цифра -двоичная тетрада». Этим обеспечивается эффективность процессов кодирования – декодирования.
2. Упорядоченность пар: бОльшим десятичным цифрам должна соответствовать бОльшая тетрада (или наоборот). Этим обеспечивается эффективность операции сравнения чисел.
3. Чётным десятичным цифрам должны соответствовать чётные тетрады (или наоборот). Этим обеспечивается эффективность операции округления и бОльшая простота выполнения некоторых арифметических операций.
4. Самодополняемость любой тетрады, изображающей десятичную цифру, то есть замена всех двоичных цифр исходной тетрады на взаимнообратные должна привести к тетраде, изображающей другую десятичную цифру, являющуюся для исходной дополнением до старшей цифры – девятки. Этим обеспечивается эффективность операции алгебраического сложения.
5. Весомозначность кода, то есть однозначность веса каждого разряда двоичной тетрады. Этим обеспечивается эффективность выполнения всех арифметических и логических операций над двоично-десятичными числами.
В данных методических указаниях будут рассмотрены три тетрадных 2-10 кода: код с естественными весами или код прямого замещения 8-4-2-1; код с избытком три 8-4-2-1+3; код Айкена 2-4-2-1. Цифры в кратких числовых наименованиях кодов указывают веса двоичных разрядов в каждой двоично-десятичной тетраде, начиная со старшего разряда. Кроме того будет рассмотрен один пентадный двоично-десятичный код 3а+2. В таблице 1 схематически представлено расположение трёх тетрадных кодов на полной упорядоченной совокупности двоичных тетрад.
Таблица 1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Упорядоченная
совокупность
двоичных
тетрадных кодов
|
|
|
|
|
|
|
|
| 8
|
|
| Код 8-4-2-1
|
|
|
|
|
|
|
|
|
|
|
|
| Код 8-4-2-1+3
|
|
|
|
|
|
|
|
|
|
|
| Код 2-4-2-1
|
Операция алгебраического сложения
В двоично-десятичных кодах
Код с естественными весами 8-4-2-1
Таблица 2.
Это простейший двоично-десятичный код, в котором каждая десятичная цифра представлена своим двоичным эквивалентом.
Выполнение операции алгебраического сложения требует перевода цифр из прямого кода (ПК) в обратный код (ОК) или дополнительный код (ДК). В двоично-десятичной арифметике принято использовать обратный код. Главный недостаток кода с естественными весами 8-4-2-1 в отсутствии свойства самодополняемости.
Простое инвертирование тетрад прямого кода образует псевдообратный код, который дополняет исходную тетраду до 15=1111, а для формирования обратного кода десятичной цифры необходимо получить её дополнение до старшей цифры в 10сс, которая равна 9. Значит, в инвертированной тетраде получается значение, большее нужного на 6=0110, и его надо вычесть из псевдообратного кода. Заменяя вычитание сложением в ДК, получим корректирующий код:
-610=-01102=1010дк
Таким образом, для формирования обратного кода десятичного числа в коде 8-4-2-1 надо инвертировать тетрады, представляющие цифры этого числа, и прибавить потетрадно код 1010, отбрасывая единицы переноса между тетрадами.
При сложении двух чисел сумма в к-ом разряде числа может быть записана формулой: Sk = Ak+Bk+Ck,
где Ак,Вк- цифры в к-ом разряде слагаемых,
Ск- единица переноса в к-ый разряд из предыдущего разряда.
Для определения правильных корректирующих кодов при сложении необходимо проанализировать все возможные варианты формирования тетрад суммы, чтобы в необходимых случаях возникали единицы переноса в соседний старший разряд десятичного числа.
1. Sk = Ak+Bk+Ck<10 – единицы переноса в старший разряд нет и коррекция не нужна;
2. 10 Sk 15 – необходимо формировать единицу переноса в старший разряд, но естественным образом она не возникает; значит нужен корректирующий код +610 = 01102.
Признаком введения коррекции являются «неправильные» тетрады, соответствующие десятичным числам 10,11,12,13,14,15, обнаружить которые нетрудно: все они имеют единицу в старшем разряде и единицу в 3-ем или 2-ом разрядах двоичного кода.
Простейшая комбинационная схема для обнаружения «неправильных» тетрад должна работать в соответствии с логическим уравнением: К1(К2 К3)=1, если в двоичной тетраде разряды обозначены так К1К2К3К4.
3. Sk 16 – единица переноса в старшую тетраду возникает естественно, однако в самой тетраде результат неверный: нужно получить (Ak+Bk+Ck-10), а получается (Ak+Bk+Ck-16). Следовательно, необходима коррекция кодом +610=01102 тех тетрад, из которых сформировалась единица переноса.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|