Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 64 страницы.doc
Скачиваний:
173
Добавлен:
15.06.2014
Размер:
2 Мб
Скачать
☆

18 Суммирование чисел с один зн-ми в bcd-коде

При выполнении операций над кодами возможны следующие особенности:

  • наличие разрешенных и запрещенных комбинаций, свидетельствующих о правильности результата или необходимости его коррекции;

  • при сложении тетрад возможен потетрадный (16 единиц), а не поразрядный (10 единиц) перенос, что также требует корректировки результата.

Сложении чисел в BCD-коде:

1) ( a + b ) ≤ 9 . коррекция результата не требуется.

2) 10 ≤ ( a + b ) ≤ 15.

В этом случае в тетраде накопилось более девяти единиц и должен быть выполнен десятичный перенос. Перенос единицы в старший разряд выполняется принудительно. Условием для формирования единицы переноса является возникновение запрещенной комбинации (наличие единицы в разрядах с весом 8 и 4 или 8 и 2). Освобождение тетрады также делается принудительно добавлением 0110 (шестерки), что приводит к возникновению шестнадцатеричного переноса. Этот перенос игнорируется. 3) ( a + b ) ≥ 16. Здесь в процессе суммирования возникает шестнадцатеричный перенос, в результате которого тетраду покидают вместе с десятком и те шесть единиц, которые принадлежат тетраде. Чтобы восстановить верное значение этой тетрады, необходимо к ней добавить 0110 (шесть).

Устройство, которое работает по сформулированным выше правилам, называется одноразрядным двоично-десятичным сумматором

19 Суммирование чисел с разными знаками в bcd-коде

Отрицательные BCD-коды должны представляться в прямом, обратном или дополнительном кодах. ОсобенностьюBCD-кодов является то, что инверсия тетрады означает дополнение до 15, а для соответствующей десятичной цифры до 9. Следовательно, необходимо убрать разницу. Один из приемов формирования обратногоBCD-кода состоит в добавлении во все тетрады отрицательного числа 0110, затем их инверсии.

При сложении чисел с разными знаками возможны следующие случаи.

1) a - b ≥ 0

a = 7 0 . 0111 [ a ]обр

b= -3 1 . 1100 [ b ]обр

4 10 . 0011

1

0 . 0100

  1. a - b < 0

a = 3 0 . 0011 [ a ]обр

b = -7 1 . 1000 [ b ]обр

-4 1 . 1011

0 . 0100

В тетраде суммы пятнадцать лишних единиц. Но при переходе от инверсной формы к прямой лишние единицы уничтожаются сами собой. Это то же самое, что от значащей части суммы вычесть пятнадцать: 1011 - 1111 = 0100

Таким образом, в тетраду производится заем, если результат:

  • положительный и из тетрады нет переноса;

  • отрицательный и из тетрады есть перенос.

20 Bcd-коды с избытком 3

Иначе говоря, это коды чисел из системы (BCD+ 3). В этом коде каждая десятичная цифраaiпредставляется в виде двоичного эквивалента суммыai+3. В отличие отBCD-кода кодBCD+3 – самодополняющийся, но не имеющий свойства взвешенности. Применяется наиболее часто в десятичной арифметике, так как при выполнении двоичного суммирования легко выделить десятичный перенос. Возможны следующие два случая сложения чисел вBCD-коде +3:

  1. a + b ≤ 9 ; [ ( a + 3 ) + ( b + 3 ) ] ≤ 15.

В тетраде суммы будут лишние 6 единиц. Чтобы тетрада суммы осталась тоже с избытком 3, нужно вычесть 3.

  1. a + b ≥ 10; [ ( a + 3 ) + ( b + 3 ) ] ≥ 16.

Здесь возникает шестнадцатеричный перенос, вместе с которым тетраду суммы покинут и шесть избыточных единиц; чтобы тетрада суммы осталась с избытком 3, надо добавить 3.

Если складываются числа с разными знаками, то избыток в тетраде суммы будет равен нулю и суммирование, таким образом, сводится к правилам суммирования в BCD-коде. Правило. Еслииз тетрады былперенос, надо добавить +0011, если переноса не было, – 0011 (добавить 1100), независимо от знака слагаемых и знака суммы.