Мегаобучалка Главная | О нас | Обратная связь


IV . Деление двоичных чисел



2019-12-29 1249 Обсуждений (0)
IV . Деление двоичных чисел 0.00 из 5.00 0 оценок




Процесс деления состоит из последовательности операций вычитания и сдвигов, при этом операция вычитания заменяется операцией сложения остатка с делителем, представленным в обратном или дополнительном кодах.

При делении чисел в прямом коде знак частного определяется сложением по модулю два знаковых разрядов делимого и делителя, и далее в процессе деления участвуют модули операндов.

Так как операция деления обратна умножению и начинается всегда со старших разрядов, то существуют два способа деления – обращенный III и IV способы умножения. Причем нередко для реализации умножения и деления целесообразно использовать одно и то же оборудование: регистр множимого - как регистр делителя, регистр множителя – как регистр частного, а регистр частных сумм – как регистр делимого, в который заносят остатки от деления.

Задание №1 Знаки операндов: C >0, D <0, C – делимое. Представить числа в форме с ФЗ в ПК, выполнить деление первым способом, применив алгоритм деления с восстановлением остатков с использованием ОК при вычитании. Проверить результат операции, оценить ошибку округления.  

 


Алгоритм деления с восстановлением остатков:

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,000000     0,010111 1,000110 1,011101   0,111001 10,010110         1 0,010111 Вычитание   Остаток, < 0 Восст. Остатка     Сдвиги
0,000000   0,101110 1,000110 1,110100  0,111001 10,101101               1 0,101110 Вычитание   Остаток, < 0 Восст. Остатка     Сдвиги
    0,000001 1,011100   1,000110 10,100010               1  0,100011 1,000110   Вычитание     Остаток > 0 Сдвиги
0,000011   0,000110   0,001100 0,011001 0,011001(1) 1,000110 1,000110 10,001100                1 0,001101 0,011010 0,011010 1,000110 1,100000 0,111001 10,011001                1 0,011010 0,110100  1,000110 1,111010 0,111001 10,110011                1 0,110100 1,101000 1,101000  1,000110 10,101111               1 0,110000 1,100000 1,100000     1,000110 10,100110           1 0,100111   Вычитание     Остаток > 0   Сдвиги Вычитание Остаток <0 Восст. Остатка     Сдвиги Вычитание   Остаток < 0 Восст. Остатка   Сдвиги Вычитание   Остаток > 0 Сдвиги Вычитание   Остаток > 0  

 

Округление:

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%

 

Задание №2 Оба операнда отрицательны, С – делимое. Выполнить операцию деления 2 способом чисел в форме с ФЗ в ПК, применив алгоритм деления без восстановления остатков с использованием ДК при вычитании. Проверить результат. Оценить погрешность округления.

 

 


Алгоритм деления без восстановления остатков:

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,000000

0,000000

0,000001

0,000011

0,000110

0,001100

0,011001

0,011001 (1)

0,111001 000000

 

 

0,011100 100000

 

 

0,001110 010000

 

 

0,000111 001000

 

 

0,000011 100100

 

 

0,000001 110010

 

 

0,000000 111001

 

 

0,000000 011100

0,010111 000000 1,000111 000000

 

Вычитание

Остаток < 0

Сдвиги

Сложение

Остаток < 0

Сдвиги

Сложение

Остаток > 0

Сдвиги

Вычитание

Остаток > 0

Сдвиги

Вычитание

Остаток < 0

Сдвиги

Сложение

Остаток < 0

Сдвиги

Сложение

Остаток > 0

Сдвиги

Вычитание

Остаток < 0

1,011110 000000   0,011100 100000
1,111010 100000   0,001110 010000
10,001000 110000 0,001000 110000 1,111000 111000
10,000001 101000     0,000001 101000 1,111100 011100
1,111110 000100   0,000001 110010
1,111111 110110 0,000000 111001 10,000000 101111 0,000000 101111
1,111111 100100 10,000000 010011 0,000000 010011

 

Округление:

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%

 

 

Задание №3 Знаки операндов: C <0, D >0, причем D - делимое. Представить числа в форме с ФЗ в ДК, выполнить деление 2 способом, в соответствии с алгоритмом деления в ДК (с автоматической коррекцией). Проверить результат операции, оценить погрешность округления.

 




2019-12-29 1249 Обсуждений (0)
IV . Деление двоичных чисел 0.00 из 5.00 0 оценок









Обсуждение в статье: IV . Деление двоичных чисел

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1249)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)