Схемы деленяе целых чисел без знака (в прямом коде)
При делении чисел в прямом коде производится деление чисел без знаков и отдельно производится вычисление знаков частного и остатка. При этом остатку присваивается знак делимого. Знак частного определяется по результатам сравнения знаков делимого и делителя. Частному присваивается положительный знак, если знаки делимого и делителя совпадают.
Пример. Деление целых чисел без знака с восстановлением отрицательных остатков:
А = 3810 = 100110(2) делимое (число без знака),
В = 510 = 101(2) делитель (число без знака),
С – частное от деления (число без знака),
В модифицированном дополнительном коде (- В)=11 1011(2)
№ цикла | Делимое/ частичный остаток | Делитель | Частное | Комментарии |
0,0100110 +1,1011 . 1,1111 +0,0101 0,0100110 | Исходное состояние Пробное вычитание (дополнительный код) Результат отрицательный (переполнения нет) Восстановление остатка. Остаток восстановлен | |||
0,100110 +1,1011 0,010010 | Сдвиг делимого, Первое вычитание (дополнительный код) Результат положительный. Цифра частного 1 | |||
0,1001 +1,1011 . 0,0100 | Сдвиг делимого Второе вычитание (дополнительный код) Результат положительный. Цифра частного 1. | |||
0,1000 +1,1011 0,0011 | Сдвиг делимого Третье вычитание) Результат положительный. Цифра частного 1 |
Результат деления 100110 (3810) на 101(510): |
частное – 111 (710), остаток – 011(310) (числа без знаков).
Результат :
частное С = 111(2), =7(10)(число без знака).
остаток – 0011(2) =3(10) (число без знака).
Восстановление отрицательных остатков делает алгоритм деления нерегулярным. Для избавления от нерегулярности алгоритма деления используют схемы деления без восстановления отрицательных остатков.
В схемах деления без восстановления отрицательных остатков отрицательные остатки фиксируются, но их восстановление переносится на следующий цикл. В следующем цикле восстановление отрицательного остатка совмещается с очередным вычитанием сдвинутого частичного остатка.
Если при очередном вычитании получился отрицательный частичный остаток (А–В) = а<0, то его восстановление заключается в операции а + В.
Для определения следующей цифры частного восстановленный частичный остаток сдвигается влево на один разряд, что равносильно умножению его на два :
2 (а + В) = 2а +2В.
После этого Далее из этой величины, для определения следующей цифры частного, вычитается делитель:
2а +2В – В = 2а + В.
Таким образом, восстановление отрицательного остатка можно совместить с определением очередной цифры частного, для этого в последующем цикле вычитание делителя из сдвинутого частичного остатка заменяется суммированием.
В случае, если последний остаток окажется отрицательным, то его следует восстановить путем сложения с делителем.
Пример: Деление целых чисел без восстановления отрицательных остатков.
А = 55(10) = 110111(2) делимое (число без знака),
В = 7(10) = 111(2) делитель (число без знака),
С – частное от деления (число без знака).
№ цикла | Делимое/ частичный остаток | Делитель | Частное | Комментарии |
00.110000 +11.001 . 11.111000 | 00.111 | Исходное состояние Пробное вычитание (дополнительный код) Результат отрицательный. (Переполнения нет) | ||
11.11000 +00.111 . 00.10100 | 00.111 | Сдвиг отрицательного делимого влево и вместо вычитания – сложение с делителем. Результат положительный, цифра частного = 1. | ||
01.0100 +11.001 . 00.0110 | 00.111 | Сдвиг положительного делимого влево и вычитание (дополнительный код) делителя. Результат положительный, цифра частного = 1. | ||
00.0110 +11.001 11.110 | 00.111 | Сдвиг положительного делимого влево и вычитание (дополнительный код) делителя. Результат отрицательный, цифра частного = 0. | ||
11.110 00.111 00.110 | 00.111 | Восстановление отрицательного остатка. |
Результат деления 110111 на 101:
частное – 110, остаток – 0110. (числа без знаков).
Результат :
Частное С = 110(2) = 6(10), (число без знака).
остаток – 0110(2) =6(2), (число без знака).
Блок схема алгоритма деления целых чисел без восстановления отрицательных остатков представлена на рис. 5.8.
Рис.5.8. Блок схема алгоритма деления целых чисел без знаков (в прямом коде) без восстановления отрицательных остатков.
Дата добавления: 2022-02-05; просмотров: 419;