Основные алгоритмы деления в вычислительных машинах
Деление выполняется путем вычитания делителя из делимого, а затем из получающихся частичных остатков. Применяется операция сдвига. Предполагается, что мы работаем с числами с фиксированной запятой и делимое больше делителя Если в результате вычитания делителя из делимого оказывается, что полученный остаток больше единицы, то в соответствующий разряд частного записываем нуль, если же меньше единицы, то - единицу.
В операциях вычитания используется дополнительный код. Вычитание заменяется сложением. Тогда частичный остаток может получиться положительным или отрицательным.
Два алгоритма деления:
1) деление с восстановлением частичного остатка
2) деление без восстановления частичного остатка
Первый из этих алгоритмов используется редко.
Заносим в сумматор делимое, а в регистр делителя - делитель. Преобразуем делитель в дополнительный код. Производим сложение делимого с делителем в дополнительном коде.
1) 2а-b Остаток восстанавливаем
а - остаток
b - делитель
2) а-b Остаток не восстанавливаем
2(а-b)
2(a-b)+b
2a-b
Не используется такт восстановления на каждом разряде.
Пример:
С восстановлением
1 такт. Сдвиг делимого влево на один разряд + дополнительный код делителя:
2 такт. Восстановление остатка (к остатку прибавляем делитель):
3 такт. Сдвиг восстановленного остатка влево на 1 разряд + дополнительный код делителя:
Без восстановления
1 такт.Сдвиг делимого влево на один разряд + дополнительный код делителя:
2 такт. Сдвиг остатка на 1 разряд влево + делитель:
3 такт.Сдвиг остатка влево на 1 разряд + дополнительный код делителя:
Дата добавления: 2016-02-09; просмотров: 822;