Информатика и вычислительная техника


Арифметические операции над двоичными числами - часть 4


При этом новый остаток получается также в соответствующем коде.

Деление в ЭВМ может быть реализовано двумя методами: с восстановлением остатка и без восстановления остатка.

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

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

102

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

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

Пусть в качестве делимого и делителя заданы, соответственно, числа х = + 35 и у = + 7. Представим эти числа в соответствующих машинных кодах: хпр = 0.100011; упр = 0.111; удоп = 1.001. Для деления данных чисел воспользуемся методом с восстановлением остатка. Вычитание делителя из очередного остатка заменим сложением в дополнительном коде.

103

Как видим, результат получился правильный: х/у = 1012 = 510. Метод деления без восстановления остатка получил более широкое распространение, так как здесь сразу же получается следующий, подлежащий анализу остаток без восстановления предыдущего. Для этого полученный отрицательный остаток сдвигается на один разряд влево и к нему прибавляется делитель в прямом коде. Убедимся в этом на предыдущем примере, для которого первый остаток получился отрицательный: 1101.


Начало  Назад  Вперед



Книжный магазин