Деление чисел в прямых кодах.
Алгоритм деления с восстановлением остатка состоит в следующем.
1. Выполняется пробное вычитание с формированием первого остатка A1=[Дм]доп+[-Дм]доп. Далее, если А1 < 0, то в первый разряд, расположенный слева от запятой заносится ноль (0, ), иначе единица (1, ) – переполнение и переход к пункту 5.
2. Если Аi < 0, то восстанавливаем предыдущий остаток Ai=Ai+[Дм]доп.
3. Формирование очередного остатка. Ai+1=Ai∙2+[-Дм]доп, то в очередной разряд частного справа от запятой записывается ноль (Чт(n)=0), иначе записывается единица (Чт(n)=1).
4. Если достигнута заданная точность частного или получен нулевой остаток Ai+1, то процесс деления окончен и переход к пункту 5, иначе переходим к пункту 2 алгоритма.
5. Окончание алгоритма.
Из рассмотренного алгоритма видно, что:
1) необходимо затрачивать время на восстановление остатка;
2) процесс деления не регулярный, в зависимости от делимого и делителя
частное будет содержать нулей больше или меньше, и чем больше нулей, тем больше требуется времени на восстановление остатков.
Как видно из примера, для получения остатка Аi+2 необходимо выполнить
Аi+2 = ( Ai+1 + ДT ) ∙ 21 - ДT = Ai+1 ∙ 21 + 2ДT - ДT = Ai+1 ∙ 21 + ДT.
Из этого следует, что восстанавливать остаток не обязательно. Достаточно сдвинуть полученный отрицательный остаток влево на один разряд и добавить делитель. Это является основой алгоритма для выполнения деления без восстановления остатка.
Алгоритм деления без восстановления остатка.
1. Выполняется пробное вычитание с формированием первого остатка A1=[Дм]доп+[-Дм]доп. Далее, если А1 < 0, то в первый разряд, расположенный слева от запятой заносится ноль (0, ), иначе единица (1, ) – переполнение и переход к пункту 5.
2. Формирование очередного остатка. Если Аi < 0, то Ai+1=Ai∙2+[Дм]доп, иначе Ai+1=Ai∙2+[-Дм]доп.
3. Если Аi+1 < 0, то в очередной разряд частного справа от запятой записывается ноль (Чт(n)=0), иначе записывается единица (Чт(n)=1).
4. Если достигнута заданная точность частого или получен нулевой остаток Ai+1, то процесс деления окончен и переход к пункту 5, иначе переходим к пункту 2 алгоритма.
5. Окончание алгоритма.
Дата добавления: 2015-05-05; просмотров: 1081;