Автор работы: Пользователь скрыл имя, 07 Декабря 2010 в 20:08, Не определен
Доклад
ДЕЛЕНИЕ ДВОИЧНЫХ ЧИСЕЛ
Если умножение
выполняется путем многократных
сдвигов и сложений, то деление, будучи
операцией обратной умножению,—
путем многократных сдвигов и
вычитаний.
(ПРАВИЛЬНЫЕ ДРОБИ, БЕЗ ЦЕЛОГО.)
При представлении чисел с фиксированной запятой деление возможно, если делимое по модулю меньше делителя, в противном случае произойдет переполнение разрядной сетки.
Так же, как и при
«ручном» делении, разряды частного
при делении чисел на машине определяются
(начиная со старшего) путем последовательного
вычитания делителя из остатка, полученного
от предыдущего вычитания. Однако здесь
операция вычитания заменяется операцией
сложения остатка с отрицательным делителем,
представленным в обратном или дополнительном
коде. Знак частного определяется сложением
по модулю два кодов знаков делимого и
делителя.
Рассмотрим сначала пример деления «ручным» способом.
Здесь после каждого
вычитания делитель сдвигается вправо
по отношению к делимому. Если остаток
после вычитания получился
В машинах вместо
сдвига делителя вправо осуществляется
сдвиг остатка влево, что, по сути, ничего
не изменяет.
При делении с
восстановлением остатка
Посмотрим, как решается
предыдущий пример на машине.
Процесс деления начинается со сдвига делимого влево на один разряд, после чего к нему прибавляется делитель, представленный, например, в дополнительном модифицированном коде:
Очевидно, что при
делении с восстановлением остатка
в самом неблагоприятном случае для формирования
каждого разряда частного требуется выполнить
две операции: вычитания (сложения в дополнительном
или обратном коде) и сложения (восстановления
остатка). То есть время выполнения операции
деления может оказаться в два раза больше
по сравнению с минимально возможным.
Для сокращения среднего
времени выполнения операции деления
реализуют деление без
1) Определить знак частного суммированием по модулю два содержимых знаковых разрядов делимого и делителя.
2) Из делимого
вычесть делитель. Если остаток
отрицательный, перейти к
3) Запомнить знак остатка.
4) Сдвинуть остаток на один разряд влево.
5) Присвоить делителю знак, обратный знаку остатка, запомненному в п. 2.
6) Сложить сдвинутый остаток и делитель (с учетом знака).
7) Присвоить цифре частного значение, противоположное коду знака остатка.
8) Повторять выполнение
пунктов 3—7 до тех пор, пока
не будет обеспечена требуемая
точность вычисления частного.
Решение рассмотренного выше примера в данном случае осуществляется по следующей схеме:
С ПЛАВАЮЩЕЙ ЗАПЯТОЙ
При выполнении операции деления над числами с ПЛАВАЮЩЕЙ ЗАПЯТОЙ мантисса частного определяется как результат деления мантиссы делимого на мантиссу делителя, а порядок частного в результате вычитания кода порядка делителя из кода порядка делимого, так как
ДЕЛЕНИЕ ЦЕЛЫХ
Деление целых ненулевых
n-разрядных (не считая знаковых разрядов)
чисел А:В, представленных в прямом (для
простоты) коде, приводит к получению целого
частного С и целого остатка 0, которому
присваивается знак делимого; знак частного
вычисляется как сумма по модулю два операндов
А и В.
Деление выполняется
в следующей
1) Делитель В сдвигается
влево (нормализуется), так чтобы
в старшем информационном
2) Выполняется (S+1)
цикл деления модулей |А| на
IB’l где В' — нормализованное
В, в результате находится(S+ 1)
разряд частного, начиная со старшего
из (S+ 1)младших.
3) Полученный в
последнем цикле деления
Частному и остатку присваиваются знаки.