Суммирование чисел с одинаковыми знаками в BCD-коде
При выполнении операций над отмеченными кодами возможны следующие особенности:
§ наличие разрешенных и запрещенных комбинаций, свидетельствующих о правильности результата или необходимости его коррекции;
§ при сложении тетрад возможен потетрадный (16 единиц), а не поразрядный (10 единиц) перенос, что также требует корректировки результата.
При сложении чисел в BCD-коде возможны три случая:
1) ( a + b ) ≤ 9 . В этом случае если действия выполняются по правилам двоичной арифметики, то величина получаемой суммы не превышает девяти и коррекция результата не требуется.
5 0101
+ 30011
8 1000
2) 10 ≤ ( a + b ) ≤ 15. Если результат сложения двух чисел попадает в данный диапазон чисел, то возможны два случая результирующей тетрады.
5 0101 9 1001
+ 60110 + 40100
11 1011 13 1101
В этом случае в тетраде накопилось более девяти единиц и должен быть выполнен десятичный перенос. Перенос единицы в старший разряд выполняется принудительно логической схемой. Условием для формирования единицы переноса является возникновение запрещенной комбинации (наличие единицы в разрядах с весом 8 и 4 или 8 и 2). Однако тетраду надо освободить от десяти избыточных единиц. Это тоже делается принудительно добавлением 0110 (шестерки), что приводит к возникновению шестнадцатеричного переноса. Этот перенос игнорируется. Схема формирования принудительного переноса приведена на рис.11.
3) ( a + b ) ≥ 16. Здесь в процессе суммирования возникает шестнадцатеричный перенос, в результате которого тетраду покидают вместе с десятком и те шесть единиц, которые принадлежат тетраде. Чтобы восстановить верное значение этой тетрады, необходимо к ней добавить 0110 (шесть).
8 1000
+ 91001
17 1 0001
0110 Коррекция(+6) 0111
Рис. 11. Схема определения запрещенной комбинации |
Таким образом, из сказанного выше можно сформулировать следующие правила потетрадного сложения чисел в BCD-кодах.
§ Если при потетрадном сложении перенос в соседнюю старшую тетраду не возникает, то результат суммирования не требует коррекции.
§ Коррекция результата потетрадного сложения путем добавления поправки 0110 требуется в случае, если возникает:
а) потетрадный перенос в старшую тетраду;
б) запрещенная комбинация.
Устройство, которое работает по сформулированным выше правилам, называется одноразрядным двоично-десятичным сумматором (рис.12).
Пример: сложить числа А=169 и В=378 в BCD-коде
A = 169 A = 0.0001 0110 1001
+ B = 378 + B = 0.0011 0111 1000
A + B = 547 A + B = 0.0101 1110 0001
0110 0110
0.0101 0100 0111
перенос игнорируется
Дата добавления: 2016-01-09; просмотров: 697;