Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

 

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

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

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

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

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

На каждом такте определяется один разряд частного. В процессе деления определяются разряд целой части (этот разряд имеет единичное значение, если деление двух правильных дробей дает частное, большее или равное 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   восстановленный остаток сдвинутый остаток  
2 р. (старший разряд модульной части) - 2-й такт + 11.0011 100.1001 00.1001 01.0010   остаток >0 (перенос игнорируется)   сдвинутый остаток  
3 р. - 3-й такт + 11.0011 100.0101 00.1010   остаток >0 (перенос игнорируется) сдвинутый остаток  
4 р. - 4-й такт + 11.0011.. 11.1101 + 00.1101   остаток <0 восстановление остатка  
  00.1010 01.0100   сдвинутый остаток  
5 р. - 5-й такт + 11.0011 100.0111 00.1110   остаток >0 сдвинутый остаток  
6 р - 6-й такт + 11.0011 1 00.0001 00.0010   остаток>0 сдвинутый остаток  

 

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

úСú = 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. На каждом такте выполняются следующие действия:

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

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

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

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

4. После выполнения последнего (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 (перенос игнорируется) сдвинутый остаток  
2 р. (старший разряд модуля) -2-й такт + 00.1101 100.1001 01.0010 прибавление ú Вú, т.к. остаток <0 остаток >0 (перенос игнорируется) сдвинутый остаток  
3 р. - 3-й такт + 11.0011 100.0101 00.1010 вычитание úВú, т.к. остаток >0 остаток >0 (перенос игнорируется) сдвинутый остаток  
4 р.- 4-й такт + 11.0011 11.1101 11.1010 вычитание ú Вú, т.к. остаток >0 новый остаток <0 сдвинутый остаток  
5 р. - 5-й такт +00.1101 100.0111 00.1110 прибавление ú Вú, т.к. остаток<0 новый остаток >0 сдвинутый остаток  
6 р. - 6-й такт +11.0011 100.0001 00.0010 вычитание ú Вú, т.к. остаток >0 новый остаток >0 сдвинутый остаток  

 

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

úСú = 0.11011,

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

úСú = 0.1110.

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

[C]пк = 1.1110.

 

<== предыдущая лекция | следующая лекция ==>
Арифметические операции над числами, представленными с фиксированной точкой | Арифметика с плавающей точкой
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 437; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.