русс | укр

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

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

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

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


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

Операция умножения чисел с фиксированной запятой в прямых кодах


Дата добавления: 2013-12-23; просмотров: 916; Нарушение авторских прав


пр
пр
пр
пр
Чаще всего для исключения потери старших разрядов из-за переполнения разрядной сетки умножение выполняют в прямых кодах с числами, представленными с фиксированной запятой перед старшим разрядом (с отрицательными индексами). Для чисел [Х]пр = x3. x-1,...,x-n, [Y]пр = y3. y-1, ..., y-n ([Х]пр , [Y]пр <1) требуется получить произведение

пр
пр
пр
[Z]пр = [Х]п р[Y]пр = z3. z-1 , z-2, ... z-n.

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

Операция выполняется в два этапа. Отдельно определяется знак произведения z3 с учетом знаков сомножителей x3 и y3 в соответствии с выражением:

z3 = x3 y3.

Затем определяется цифровая часть произведения мантисс сомножителей. С этой целью процесс умножения можно представить в следующем виде

Z = ХY = Х (y1 2-1 + y2 2-2 + ...+ y(n-1) 2-n+1+ y(n) 2-n) = (1)
= Х 2-1 y1 + Х 2-2 y2 + ... + Х 2-n+1 y(n-1) + X 2-n y(n).

Это выражение после преобразования можно представить в виде:

Z = ((...(( 0 + Xy(n) ) 2-1 + Xy(n-1) ) 2-1 +... + Xy2) 2-1 + Xy1) 2-1 (2)

Полученные выражения (1, 2) являются аналитическими записями двух основных способов умножения: со старших разрядов множителя (1) и младших разрядов множителя (2).

Согласно выражению (2) при умножении с младших разрядов должна выполняться следующая последовательность микроопераций:

- анализируется младшая цифра множителя. Если yn = 1, то множимое Х участвует в формировании цифровой части произведения; если yn = 0, то Х не участвует в формировании произведения;

- полученное первое частичное произведение, равное 0+Xyn, сдвигается на один разряд вправо, то есть умножается на 2-1. Указанная последовательность действий справедлива при умножении на все последующие разряды. Так, при умножении на разряд y(n-1):



- анализируется цифра множителя yn-1. Если yn-1 = 1, то множимое прибавляется к сдвинутому первому частичному произведению, т.е. A2 = (0 + Xyn) 2-1 + X1. Если yn-1=0, то множимое не участвует в формировании произведения, т.е.

A2 = (0 + Xyn)·2-1 + X0.

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

A(i) = A(i-1) · 2-1 + y(n+1-i) · Х (3)

Для выполнения умножения необходимо повторить n тактов (i=1,2,..,n) в соответствии с формулой (3) и в заключение осуществить последний n-й сдвиг A(n)2-1 = XY = Z. Отметим, что при перемножении n-разрядных чисел получается 2n-разрядное произведение (n старших разрядов и n младших). При этом получение только n старших разрядов произведения или всех 2n разрядов обеспечивается суммированием в n-разрядном сумматоре. Время умножения равно:

Тх = (tSM+ tСД) · n, где tSM - время суммирования; tСД - время сдвига.

Согласно выражению (1) умножение со старших разрядов множителя должно выполняться в следующей последовательности:

- множимое сдвигается на 1 разряд вправо, т.е. X·2-1;

- анализируется старшая цифра множителя y1. Если y1 = 1, то X·2-1 участвует в формировании произведения, при y1 = 0, X·2-1 - не участвует в формировании произведения.

Выполнение такой последовательности соответствует умножению на старший разряд множителя и справедливо при умножении на все последующие разряды. Так, при умножении на второй разряд:

- производится второй сдвиг множимого, т.е. (X·2-1)·2-1;

- анализируется значение y2 и осуществляется или не осуществляется передача X·2-1 на суммирование.

Процесс умножения повторяется до просмотра всех y(i), i = 1,2,...,n.



<== предыдущая лекция | следующая лекция ==>
Операции сложения чисел в прямом, обратном и дополнительном кодах с фиксированной запятой | Уn-уn-1) [Х]Д ·2-n+1 + (уn+1-уn) [Х]Д ·2-n.


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


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

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

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


 


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

 
 

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

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