IV . Деление двоичных чисел
Процесс деления состоит из последовательности операций вычитания и сдвигов, при этом операция вычитания заменяется операцией сложения остатка с делителем, представленным в обратном или дополнительном кодах. При делении чисел в прямом коде знак частного определяется сложением по модулю два знаковых разрядов делимого и делителя, и далее в процессе деления участвуют модули операндов. Так как операция деления обратна умножению и начинается всегда со старших разрядов, то существуют два способа деления – обращенный III и IV способы умножения. Причем нередко для реализации умножения и деления целесообразно использовать одно и то же оборудование: регистр множимого - как регистр делителя, регистр множителя – как регистр частного, а регистр частных сумм – как регистр делимого, в который заносят остатки от деления.
Алгоритм деления с восстановлением остатков: 1. Определить знак частного сложением по модулю 2 знаковых разрядов делимого и делителя. Далее использовать модули операндов. 2. Вычесть из делимого делитель, путем сложения в ОК или ДК. 3. Проанализировать знак остатка после первого вычитания: а) если остаток положительный, то произошло ПРС, операцию следует прекратить до смены масштабов операндов; б) если остаток отрицательный, то в частное занести «0» (этот разряд по окончании деления станет знаковым разрядом частного) и восстановить остаток, прибавив к нему делитель. 4. Выполнить сдвиги: частного на один разряд влево и остатка на один разряд влево (I способ) или делителя на один разряд вправо (II способ). 5. В цикле формирования цифр частного вычитать из остатка делитель, прибавляя его в ОК или ДК. 6. Проанализировать знак полученного остатка: а) если > 0, то в частное заносится «1»; б) если <0, то в частное заносится «0». 7. Восстановить отрицательный остаток, сложив его с делителем. 8. Выполнить сдвиги, как указано в п.4. 9. Завершить цикл формированием (n+1)-го остатка для округления частного. 10. Выполнить округление результата и присвоить частному знак из п.1. C = 2310 = 101112 D = -5710 = -1110012 Спк = 0,010111- делимое М = 26 Dпк = 1,111001 Dок = 1,000110 - делитель
Округление: 0,011001 1 0,011010
(C/D)пк = 0,011010 C/D = 0,0110102 = 0,4062510 Точный результат: C/D = -23/-57 = - 0,40351 Абсолютная погрешность: - 0,40625 + 0,40351 = - 0,00274 Относительная погрешность: (-0,00274)/(-0,40351) = 0,0068 , т.е. 0,7%
Алгоритм деления без восстановления остатков: 1. Определить знак частного путем сложения по модулю два знаковых разрядов делителя и делимого. Далее использовать модули операндов. 2. Вычесть из делимого делитель путем сложения в ДК или ОК. 3. Проанализировать знак остатка после первого вычитания: а) если положителен, то произошло ПРС, операцию следует прекратить для смены масштаба операндов; б) если остаток отрицателен, то в частное занести «0» и продолжить операцию деления. 4. Выполнить сдвиги частного на один разряд влево и остатка на один разряд влево (I способ) или делителя на один разряд вправо (II способ). 5. Если до сдвига остаток был положителен, то вычесть из остатка делитель, если был отрицателен – прибавить к остатку делитель. 6. Если вновь полученный остаток положителен, то в очередной разряд частного занести «1», в противном случае - «0». 7. Выполнить пп.4-6 алгоритма (n+1) раз, причем последний сдвиг частного не выполнять, т.к. (n+1)-ый разряд формируется для округления. 8. Выполнить округление результата и присвоить частному знак из п.1.
C = -2310 = -10111 2 - делимое D = -5710 = -111001 2 - делитель Спк = 1,010111 Dпк = 1,111001 Сдк = 1,101001 М = 26 Dдк = 1,000111 1 1 = 0
Округление: 0,011001 1 0,011010
(C/D)пк = 0,011010 C/D = 0,011010(2) = 0,4062510 Точный результат: C/D = -23/-57 = - 0,40351 Абсолютная погрешность: - 0,40625 + 0,40351 = - 0,00274 Относительная погрешность: ( (-0,00274)/(-0,40351) )= 0,0068 , т.е. 0,7%
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1249)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |