русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Деление прямых кодов чисел


Дата добавления: 2014-11-27; просмотров: 1812; Нарушение авторских прав


Рассмотрим два базовых метода выполнения операции деления: деление с восстановлением остатка и деление без восстановления остатка.

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

 

Пример.

[А]пр = 0,110001, [РА]пр = 1,011;

[В]пр = 1,100101, [РВ]пр = 0,001;

С = А/В.

 

1. Определение знака частного.

ЗнС = ЗнА Å ЗнВ = 0 Å 1 = 1.

.

 

2. Определение порядка частного.

РС = РАРВ.

+

В прямом коде порядок частного может быть записан как .

 

3. Деление мантисс.

Частное Делитель

0.

> 0, переполнение

1.

2.

3.

4.

5.

6.

 

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

[С]пр = 1,101010, [РС]пр = 1,011.

В ЭВМ деление чисел с восстановлением остатка практически не применяется, поскольку восстановление остатка требует дополнительных временных затрат, а если оно не требуется, то цикл деления получается неравномерным.



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

Таким образом, каждый из n циклов деления состоит из двух тактов. В первом такте очередной частичный остаток и регистр частного сдвигаются на один разряд влево. Во втором такте выполняется арифметическая операция, определяемая знаком сумматора или цифрой частного, определенной в предыдущем цикле. Если сумматор больше нуля (предыдущая цифра частного – единица), то из удвоенного (сдвинутого влево) очередного частичного остатка вычитается делитель. В противном случае к удвоенному очередному частичному остатку следует прибавить положительный делитель.

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

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

 

Пример.

[А]пр = 0,110001, [РА]пр = 0,100;

[В]пр = 1,100101, [РВ]пр = 0,011;

С = А/В.

 

1. Определение знака частного.

ЗнС = ЗнА Å ЗнВ = 0 Å 1 = 1.

.

2. Определение порядка частного.

+

 

3. Деление мантисс.

Частное Делитель

0.

> 0, переполнение

1.

2.

3.

4.

5.

6.

 

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

[С]пр = 1,101010, [РС]пр = 0,010.



<== предыдущая лекция | следующая лекция ==>
Деление двоичных кодов | Ускоренное выполнение операции деления


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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