19
дополнительного кода) делителя с последующим анализом
результата. Таким образом, весь алгоритм деления двоичных чисел
сводится к достаточно простым операциям сдвига и сложения.
Ниже вместо подробного описания алгоритма двоичного деле"
ния приводится пример, хорошо иллюстрирующий его применение
на практике.
Пример 1.17
Выполним деление числа 11001100
2
(204
10
) на число 1100
2
(12
10
).
Прежде всего, необходимо представить делитель в дополнитель"
ном коде.
01100 – число +12
10
в прямом коде (первый ноль – знаковый раз"
ряд);
10011 – обратный код числа 12;
00001 – единица, прибавляемая к обратному коду;
10100 – дополнительный код числа 12 (т.е. число –12).
После этого можно непосредственно приступить к процедуре
деления, которая выполняется в несколько шагов.
1. Аналогично процедуре десятичного деления на первом шаге
необходимо выяснить сколько раз делитель укладывается в числе,
образованном соответствующим количеством старших разрядов де"
лимого. Вычислительное устройство, разумеется, не может строить
догадок на этот счёт. Но, как уже было указано выше, на практике
при двоичном кодировании операндов подобный анализ делается
путём вычитания делителя из делимого.
011001100 – делимое (уменьшаемое);
101000000 – делитель в дополнительном коде (вычитаемое);
000001100 – результат, полученный на первом шаге деления.
Заметим, что наличие нуля в знаковом разряде результата (бит
переноса из знакового разряда отбрасывается) свидетельствует о том,
что результат вычитания положительный. Следовательно, делитель
полностью укладывается в анализируемом числе, и значит бит стар"
шего разряда частного равен 1.
Таким образом, будущий окончательный результат деления мож"
но пока представить в виде 1xxx…
2. С целью определения следующего разряда частного, следует
повторить попытку вычитания делителя, но предварительно осуще"
ствив сдвиг первого результата на одну позицию влево. Нетрудно
убедиться, что это вполне согласуется с соответствующим шагом
процедуры десятичного деления (см. пример 1.16).
Итак:
+
+