Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дубинин Н.М. Методические указания по курсовому проектированию.DOC
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
668.16 Кб
Скачать

6.3.4 Умножение на два разряда одновременно

При умножении с младших разрядов прямых кодов этот метод предполагает рассмотрение всех комбинаций кодов множителя в двух разрядах:

00,01,10,11. Код 00 - нет передачи множимого, код 01 - одна передача множимого, код 10 - также одна передача множимого, но со сдвигом (X) . Код 11 - можно образовать из кодов 100 и -01, так как 100-01=11. Т.е. при умножении на код 11 можно осуществлять передачу множимого в соответствии с кодом -01 (т.е. вычитать множимое), но при умножении на следующую пару необходимо к коду пары разрядов множителя прибавить единицу. Схема арифметического устройства, реализующего данный метод, приведена в работе [8].

6.3.5. Деление чисел с фиксированной запятой перед старшим разрядом

Операция деления в двоичной системе счисления может быть записана в виде

Z=X/Y=zз×z-1×z-2... ×z-m; zз, ziÎ{0,1}.

При делении делимого Х на делитель Y, получается частное Z и остаток O, который может быть равен нулю или некоторому числу в зависимости от значений Х и Y и числа шагов деления. Различают деление со сдвигом остатка или со сдвигом делителя. При делении n-разрядных чисел по любому из этих способов на первом шаге выполняют пробное вычитание (сложение в обратных или дополнительных кодах с разными знаками делимого и делителя)

X-Y=O1 при X,Y ¹0.

В результате пробного вычитания получают остаток O0=oз×o-1×o-2... ×o-(n-1) со знаком o3 в старшем разряде. Если знак положителен o3=0, то первая цифра частного с весом 20 равна единице z0=1, т.е. |Z|³1 и частное не может быть представлено дробью (с фиксированной запятой перед старшим разрядом). Следовательно, |X|³|Y| . Выдается сигнал переполнения разрядной сетки (ПП=1) и деление прекращается. При oз=1, z0=0, деление продолжают до получения остатка, равного нулю в любом коде или до получения необходимого числа m цифр частного (обычно m=n).

При делении со сдвигом остатка дальнейшие шаги выполняются по формуле

При делении со сдвигом делителя

Очередная цифра частного по любому из способов деления определяется по правилу

Сдвиг отрицательного остатка выполняется по правилам сдвига в обратном коде: знак не сдвигается, освобождающиеся разряды соответствуют знаку в обратном коде.

В дополнительном коде при сдвиге влево младшие разряды обнуляются, при сдвиге вправо старший разряд числа соответствует знаковому.

Частное в конце деления получается в прямом коде, поэтому если на k-ом шаге Ok=0, деление прекращают и z-k,...,z-m=0.

Например X=0.1001, Y=1.1100 представлены в прямом коде, а вычитание осуществляется в дополнительном коде, тогда

0.1001

[X]д+[-Y]д +1.0100

1.1101

После пробного вычитания остаток 1.1101 отрицателен и, следовательно, в частном отсутствует целая часть z0=0.

Так как остаток отрицателен oз=1, то на следующем шаге к сдвинутому остатку прибавляют делитель ( или прибавляют по другому способу сдвинутый делитель, как показано на примере справа ).

1.1010 (O0×2+1) 1.1101

+0.1100 +0.0110 (Y×2-1)

0.0110 (O1) 0.0011 (O1)

Остаток получен положительный и z- -1=1 и не равный нулю. Деление продолжают

0.1100 (O1×2+1) 0.0011

+1.0100 +1.1101 ([-Y×2-2]д)

0.0000 (O2) 0.0000 (O2)

Так как знак остатка положителен, то z-2=1 , а весь остаток равен нулю, то приравнивая z-3=z-4=0, деление прекращают.

Знак частного определяется как zз=xз Å yз и в приведенном примере zз=0 Å 1=1. В результате деления получается частное Z=0.1001 / 1.1100=1.1100 отрицательное, дробное. Если X и Y, например, имели коэффициент фиксации равным нулю, то результат деления можно проверить, представив числа в десятичной системе счисления

X=; Y=; Z=.