Конспект лекций по дискретной математике

Информация - Математика и статистика

Другие материалы по предмету Математика и статистика

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

Действительно, при корректном делении получается верный знак частного.

Пример : 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. При получении нулевого остатка на коком либо шаге деления для следующего шага остаток будет равен делителю. При его сдвиге влево он станет равен удвоенному делителю. И после вычитания делителя на следующем шаге он снова станет равен делителю. Таким образом в конце операции после выработки всех цифр частного остаток будет не нулевым, а равным делителю. Если при этом его знак совпадает со знаком делимого, то в соответствии с основным алгоритмом деления он не подлежит коррекции.

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