Курсовая работа: Деление двоичных чисел в прямом, обратном и дополнительном кодах
Рассмотрим пример деления с восстановлением остатка (см. таблицу). Для выполнения операции вычитания будем использовать дополнительный код. Деление с восстановлением остатка требует в наиболее неблагоприятном случае трёх тактов для формирования одного разряда частного: такта вычитания, такта сложения и такта сдвига.
Рассмотренный метод носит название деления с восстановлением остатка .
Недостатком этого метода является необходимость введения специального третьего такта для восстановления остатка, который значительно замедляет ход вычисления.
Обычно в вычислительных машинах для деления широко используется другой метод, называемый методом выполнения деления без восстановления остатка . Этот метод основан на прямом копировании действий при ручном делении («в столбик»).
При этом методе, если результат вычитания получился отрицательный, частичный остаток не восстанавливается путём прибавления делителя, а на следующем шаге деления вместо вычитания делимого производится его прибавление к частичному остатку. Если результат при этом остался отрицательным, то в очередную цифру частного записывается нуль и на следующем шаге также выполняется сложение. Если результат сложения получился положительным, то в очередной разряд частного записывается единица и на следующем шаге производится вычитание.
Можно показать, что частичные остатки при делении без восстановления остатка получаются такими же, как и остатки после сдвига восстановленного остатка при делении с восстановлением остатка.
Действительно, поскольку сдвиг частичного остатка на один разряд влево эквивалентен умножению его на два, получим:
2a – b = 2(a –b) + b
где a – частичный остаток; b – делитель.
Аналогично:
Деление без восстановления остатка всегда требует для получения одной цифры частного только двух тактов: такта сложения или вычитания и такта сдвига. Тем самым скорость вычисления этим методом оказывается выше чем в методе деления с восстановлением остатка.
Деление правильных дробей выполняется также, как деление целых чисел. Разница же заключается в том, что делимое имеет, как правило, такую же длину, как и делитель. Однако можно предположить, что делимое имеет ещё n младших разрядов, равных 0. Тогда становится ясно, что алгоритм деления дробей ничем не отличается от алгоритма деления целых чисел.
Исходя и