Деление чисел, представленных в дополнительном коде, выполняется в три этапа.
На первом этапе вычисляется знак частного как результат сложения по модулю 2 знаков операндов.
На втором этапе производится операция проверки на возможность деления (на денормализацию частного влево) путем алгебраического сложения делимого с делителем, которому приписывается знак, противоположный знаку делимого. При этом если делимое положительное, то цифра частного, оказывающаяся в знаковом разряде, определяется инверсией знакового разряда сумматора. Если делимое отрицательное, то текущая цифра частного равна прямому значению знакового разряда сумматора.
На третьем этапе выполняются n циклов деления по обычному алгоритму с некоторыми отличиями, заключающимися в том, что при отрицательном делителе цифры частного формируются равными прямому значению знакового разряда очередного частичного остатка. При этом частное получается в обратном коде. Кроме n основных циклов, обязательно вычисление -й цифры частного в дополнительном цикле, поскольку в дальнейшем нормализованное при необходимости частное поступает на сумматор, где к -му разряду добавляется единица для округления и перевода частного из обратного кода в дополнительный.
Читателю предлагается самостоятельно разобрать примеры, взяв в качестве операндов мантиссы из предыдущих примеров. При этом следует помнить, что отрицательные операнды должны быть представлены в дополнительном коде.
Пример.
[А]д = 0,101;
[В]д = 1,010;
С = А/В.
ЗнС = ЗнА Å ЗнВ = 0 Å 1 = 1.
0.
Поскольку делимое положительное, переполнения разрядной сетки не произойдет (в младший разряд регистра частного заносится инверсия знака сумматора).
Так как делитель отрицательный, цифры частного будут определяться прямыми значениями знакового разряда сумматора.
1.
2.
3.
4.
Округление и преобразование в дополнительный код.
5. ;
Таким образом, [С]д = 1,001.
В прямом коде результат запишется как [С]пр = 1,111.