Конспект лекций по дискретной математике
Информация - Математика и статистика
Другие материалы по предмету Математика и статистика
го сохранение до конца операции. По результату пробного вычитания формируется старшая цифра частного, интерпретируемая как знак.
Действительно, при корректном делении получается верный знак частного.
Пример : A=-168 B=-14 n=5
A=1101011000 ; B=10010
Выполняемые действия
N шагаобозначенияA/R (старшие)A/C (младшие)0A
A
B
R0 11010
-10101
10010
00011
sign R0sign B
11000
10000
1000|0
1
R0
B
R1
+00111
10010
11001
sign R1=sign B
000|00
000|012
R1
B
R2
+10010
10010
00000
sign R2sign B
00|010
00|010
3
R2
B
R3
+00000
10010
10010
sign R3=sign B
0|0100
0|01014
R3
B
R4
-00100
10010
10010
sign R3=sign B
01010
01011псевдо-
коррекцияR4
B
R -10010
10010
00000коррекция частного+01011
1
01100
Приведенный пример иллюстрирует ряд дополнительных нюансов деления в дополнительных кодах :
На четвертом шаге при сдвиге остатка произошло искажение его знака. Выполняемое действие над остатком должно определяться его знаком для предыдущего шага (до сдвига). В схемной реализации этот факт необходимо учитывать путем применения модифицированного кода с удвоенным знаковым разрядом. В связи с этим разрядность регистра для хранения остатка и частного должна быть 2n+1, а разрядность сумматора (сумматора вычитателя) n+1. При получении нулевого остатка на коком либо шаге деления для следующего шага остаток будет равен делителю. При его сдвиге влево он станет равен удвоенному делителю. И после вычитания делителя на следующем шаге он снова станет равен делителю. Таким образом в конце операции после выработки всех цифр частного остаток будет не нулевым, а равным делителю. Если при этом его знак совпадает со знаком делимого, то в соответствии с основным алгоритмом деления он не подлежит коррекции.
Для устранения этого недостатка алгоритма во всех случаях совпадения знака остатка и делимого выполняется попытка так называемой псевдокоррекции. Если после этой коррекции остаток равен нулю, то он является истинным, если же остаток не равен нулю, то требуется его восстановление обратным по сравнению с псевдокоррекцией действием с делителем.