Деление двоичных кодов
Рассмотрим выполнение операции деления над числами, представленными в прямом коде.
Арифметическая операция деления выполняется в два этапа. На первом этапе, как при умножении, формируется знак частного путем сложения по модулю 2 знаков операндов. Одновременно с этим определяется порядок частного (при делении чисел в машинах с плавающей запятой) как разность порядка делимого и порядка делителя. При этом возможно переполнение сумматора порядков, которое следует интерпретировать так же, как и при выполнении нормализации результата сложения двух чисел. На втором этапе выполняется деление модуля мантиссы делимого на модуль мантиссы делителя, которое в общем виде представляет собой циклическое вычитание делителя из удвоенного очередного частичного остатка. Для определения n цифр частного необходимо выполнить n циклов деления, при этом в каждом цикле определяется очередная цифра частного в зависимости от знака очередного частичного остатка.
Деление в машинах с фиксированной запятой возможно только в том случае, когда модуль делимого меньше модуля делителя. В противном случае произойдет переполнение разрядной сетки. Для предотвращения переполнения перед началом выполнения операции следует произвести проверку на возможность деления, заключающуюся в вычитании делителя из делимого. Если результат меньше нуля, то делимое меньше делителя и выполнение операции деления возможно. Если результат больше нуля, то делимое больше делителя и выполнение операции деления следует остановить.
При делении чисел с плавающей запятой в случае неудовлетворительного результата выполнения проверки на деление процесс можно не останавливать, а сформировать первую цифру частного, равную единице, и продолжать деление в соответствии с выбранным алгоритмом. В этом случае после выполнения n циклов деления в регистре частного будет сформировано цифр частного, старшая из которых окажется в знаковом разряде. Таким образом, произойдет единственно возможная при делении денормализация результата на один разряд влево. Для устранения денормализации следует сдвинуть содержимое регистра частного на один разряд вправо, а порядок частного увеличить на единицу.
Дата добавления: 2014-12-27; просмотров: 1008;