Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА-1-2004(Комп.логика).doc
Скачиваний:
257
Добавлен:
07.02.2016
Размер:
7.96 Mб
Скачать

12 Умножение чисел на дсдк

С одной стороны, если числа хранятся в цифровом автомате в дополнительных кодах, то и операцию умножения удобно производить на сумматоре дополнительного кода. С другой стороны, при умножении на ДСДК возникают проблемы, преодолеть которые можно только учитывая определенные правила.

12.1 Умножение чисел на дсдк при положительном множителе

При положительном множителе можно сформулировать следующий алгоритм умножения чисел на ДСДК.

Алгоритм. Если множитель больше "0", то умножение на сумматоре дополнительного модифицированного кода заключается в следующем. Анализируется разряд множителя, начиная с младшего. При ві = 1, к содержимому сумматора добавляется множимое. При ві = 0, к содержимому сумматора ничего не добавляется. После каждого анализа, производится модифицированный сдвиг сумматора и множителя вправо на один разряд.

Пример. Умножить числа А = – 0,10101 = – 21, В=0,10011 =19. Метод 2. ДСДК. Подготовим числа ам.доп. = 11.01011; Вм.доп. = 00.10011 . Сумматор имеет 7 разрядов, РгВ имеет 5 разрядов. Решение представлено таблицей 12.1.

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

Результат получен в дополнительном коде со знаком 11. После преобразования его в прямой код, знак сохраняется.

12.2 Умножение чисел на дсдк при отрицательном множителе

Второй случай, когда А - любое число, а множитель В < 0.

При отрицательном множителе произведение дополнительных кодов операндов не равно дополнительному коду результата.

Поэтому, умножение выполняется аналогично подразделу 12.1 но с добавлением к результату поправки.

ПРАВИЛО. Если множитель отрицательный, то произведение чисел на сумматоре дополнительного кода получается прибавлением к произведению дополнительных кодов сомножителей поправки +1. Это инвертированное , включая и знак с добавлением 1 к младшему разряду.

Таким образом, на сумматоре дополнительного модифицированного кода получаем одновременно знаковую и цифровую части произведения.

Пример. Умножить числа А = – 0,10111 = – 23 и

В= – 0,11001 = – 25 на ДСДК (метод 2). (– 23)*(–25)=575

Подготовительные работы.

Определим Амдоп =11.01001; Вмдоп =11.00111;

поправка = 00,10111.

Решение приведено в таблице 12.2

При выполнении операции умножения, используем режим экономии аппаратных средств, т.е. при сдвиге сумматора информация с младших разрядов переходит в старшие разряды регистра В.

13. Деление бинарных чисел

13.1 Метод деления бинарных чисел

Наибольшее распространение получил метод выполнения операции деления чисел путем вычитания.

На каждом шаге из делимого А вычитается делитель В (начиная со старших разрядов) столько раз N, сколько это возможно до получения остатка L меньше делителя. В частном записывается цифра, равная числу целых частей делителя N. Тогда A:B= N*B+L.

Рассмотренный метод относится к “школьным” алгоритмам деления с восстановлением остатка.

Пример: А=0,1100100=10010; В=0,1010=1010.

Решениеприведено ниже.

При этом используют правила бинарного вычитания.

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