Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OKT.doc
Скачиваний:
8
Добавлен:
16.04.2019
Размер:
5 Mб
Скачать

2.4.1.1Деление с фиксированной точкой

Реализация второго этапа деления, т. е. формирования частного двоичных положительных чисел в ЭВМ, представленных правильной дробью, может быть выполнена двумя методами:

  • деление с восстановлением остатка;

  • деление без восстановления остатка.

Метод деление с восстановлением остатк

Деление выполняется потактно.

На каждом такте определяется один разряд частного. В процессе деления определяются разряд целой части (этот разряд имеет единичное значение, если деление двух правильных дробей дает частное, большее или равное 1), и n разрядов дробной части частного, где n-разрядность поля модуля представления чисел. Для того, чтобы точность ошибка результата не превышала половины младшего разряда модуля, ищется дополнительный (n+1)-й разряд дробной части частного, который используется только для округления результата. Таким образом, деление выполняется за (n +2) такта.

На каждом такте выполняются следующие действия

  • из остатка, полученного на предыдущем такте (на первом такте из делимого), вычитается делитель (выполняется пробное вычитание), тем самым формируется новый остаток;

  • анализируется знак нового остатка и, если знак отрицательный, то осуществляется восстановление остатка, т.е. к полученному новому остатку прибавляется делитель (если знак положительный, то восстановление остатка не происходит);

  • если после пробного вычитания был получен положительный результат, то в очередном разряде формируемого частного устанавливается единица;

  • выполняется умножение на 2 (арифметический сдвиг влево) нового или восстановленного остатка.

На первом такте определяется разряд целой части искомого частного. Для правильной дроби этот разряд должен иметь нулевое значение, поэтому, если на первом такте будет установлено, что первый разряд, т.е. разряд целой части искомого частного, равен единице, то вырабатывается специальный сигнал о том, что искомое частное не является правильной дробью. После выполнения последнего (n+2)-го такта анализируется последний найденный разряд частного и, если он равен единице, то в n-й разряд частного прибавляется единица.

Пример 1

Определить частное С1 от деления числа А на В, где

[A]пк = 0.1011,

[B]пк = 1.1101.

При выполнении операций использовать дополнительный код.

Решение

Знак искомого частного С1{зн} = 1, так как сумма по модулю «2» знаковых разрядов операндов равна 1 (А{зн} = 0, а В{зн} = 1.

Определим абсолютное значение для С. В процессе поиска значений разрядов частного будут использованы числа  А,  В, (- В), представление которых в модифицированном дополнительном коде имеет вид:

[A]мдк = 00.1011

[В]мдк = 00.1101

[-В]мдк =11.0011.

Процесс выполнения отдельных тактов представляется следующим образом.

Определяемый разряда

частного

Выполняемые

действия

Пояснение действий

Значение очередного разряда частного

1 р. (разряд целой части) -1-й такт

00.1011

+11.0011

11.1110

+00.1101

00.1011

01.0110

вычитание из абсолютного значения делимого абсолютное значение делителя; остаток <0

восстановленный остаток

сдвинутый остаток

0

2 р. (старший разряд модульной части) - 2-й такт

+11.0011

100.1001

00.1001

01.0010

остаток >0 (перенос игнорируется)

сдвинутый остаток

1

3 р. - 3-й такт

+11.0011

100.0101

00.1010

остаток >0 (перенос игнорируется) сдвинутый остаток

1

4 р. - 4-й такт

+11.0011 . . 11.1101

+00.1101

остаток <0

восстановление остатка

0

00.1010

01.0100

сдвинутый остаток

5 р. - 5-й такт

+11.0011

100.0111

00.1110

остаток >0

сдвинутый остаток

1

6 р - 6-й такт

+11.0011

100.0001 00.0010

остаток>0

сдвинутый остаток

1

Сформированное из последовательности найденных на отдельных тактах разрядов абсолютное значение частного будет равно

С = 0.11011,

после округления будет иметь место

С = 0.1110.

С учетом ранее полученного знака окончательный результат равен

[C]пк = 1.1110.

Метод деление без восстановления остатка.

Идея метода деления без восстановления остатка основана на следующем.

Действия на i-м и на (i+1)-м тактах зависят от знака получаемого остатка и представляются следующим образом:

i-1 - D) 2 -D , если (Оi-1 - D) >= 0;

((Оi-1 - D) +D)2 -D =(Оi-1 - D) +2D - D =(Оi-1 - D) +D, если (Оi-1 - D)< 0,

где Оi-1 - остаток на (i-1)-м такте;

D - абсолютное значение делителя.

Отсюда следует, что в случае, если остаток на предыдущем такте был отрицательным, то можно не осуществлять операцию его восстановления, но на следующем такте нужно не вычитать, а прибавлять делитель.

Исходя из этого деление без восстановления остатка выполняется следующим образом.

  1. Число тактов при рассматриваемом методе определяется точно так же, как и при делении с восстановлением остатка.

  2. На каждом такте выполняются следующие действия:

  • анализируется знак остатка (на первом такте анализируется знак делимого) и, если знак положительный, то из остатка вычитается делитель, в противном случае делитель прибавляется; таким образом формируется новый остаток;

  • если новый остаток положительный, то в очередном разряде формируемого частного устанавливается единица;

  • выполняется умножение на два нового остатка.

  1. Разряд, определенный на первом такте, так же как и в предыдущем методе, является разрядом целой части и, если он ненулевой, то вырабатывается сигнал о нарушении формы представления чисел в виде правильной дроби.

  2. После выполнения последнего ( n +2)-о такта выполняется округление.

Пример 2

Определить частное от деления числа А на В, где

[A]пк = 0.1011,

[B]пк = 1.1101.

При выполнении операций использовать дополнительный код.

Решение

Знак искомого частного С1{зн} = 1, так как сумма по модулю 2 знаковых разрядов операндов равна 1 (А{зн} = 0, а В{зн} = 1).

Определим абсолютное значение для С.

В процессе поиска значений разрядов частного будут использованы числа А, В, (-В), представление которых в модифицированном дополнительном коде имеет вид:[А]мдк = 00.1011,[В]мдк = 00.1101, [-В]мдк =11.0011.

Процесс выполнения отдельных тактов представляется следующим образом.

Определяемый разряда

частного

Выполняемые

действия

Пояснение действий

Значение очередного разряда частного

1 р. (разряд целой части) -1-й такт

00.1011

+11.0011

11.1110

11.1100

вычитание из абсолютного значения делимого абсолютное значение делителя остаток >0 (перенос игнорируется)

сдвинутый остаток

0

2 р. (старший разряд модуля)

-2-й такт

+00.1101

100.1001

01.0010

прибавление  В, т.к. остаток <0

остаток >0 (перенос игнорируется)

сдвинутый остаток

1

3 р. - 3-й такт

+11.0011

100.0101

00.1010

вычитание В, т.к. остаток >0

остаток >0 (перенос игнорируется)

сдвинутый остаток

1

4 р.- 4-й такт

+11.0011

11.1101

11.1010

вычитание  В, т.к. остаток >0

новый остаток <0

сдвинутый остаток

0

5 р. - 5-й такт

+00.1101 100.0111

00.1110

прибавление  В, т.к. остаток<0

новый остаток >0

сдвинутый остаток

1

6 р. - 6-й такт

+11.0011

100.0001

00.0010

вычитание  В, т.к. остаток >0

новый остаток >0

сдвинутый остаток

1

Сформированное из последовательности найденных на отдельных тактах разрядов абсолютное значение частного будет равно

С = 0.11011,

после округления будет иметь место

С = 0.1110.

С учетом ранее полученного знака окончательный результат равен

[C]пк = 1.1110.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]