Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






MSP LSP. Рис.3.22.Умножение целых чисел при дробной арифметике





 

Рис.3.22. Умножение целых чисел при дробной арифметике

 

3. Проверка окончания цикла:

· цикл повторяется до i = 1 включительно.

4. Выход из цикла:

· при i = 0 вычисляется разность s0 = s1 _ y . x0:

 

если x0 = 0, значение s0 не меняется;

если x0 = 1, из значения s0 вычитается y; при этом вычитаемое и уменьшаемое

выровнены по левому краю;

 

· разность s0 равна произведению беззнаковых чисел x и y в дополнительном коде

и имеет длину (2n _ 1) битов, где старший бит – знаковый;

 

· конечный результат формируется в формате “двойное слово” длиной 2n; при

этом “лишний” бит используется по – разному в зависимости от типа арифметики,

а именно:

 

“лишний” бит применяется, как старший бит MSB для расширения знака, при

целочисленной арифметике;

 

“лишний” бит играет роль младшего бита LSB (LSB = 0) при дробной арифметике.

 

Замечание

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

 

Приведем пример умножения в дополнительном коде двух чисел x и y длиной n = 4 бит:

x = x0x1x2x3 = 1100;

y = y0y1y2y3 = 1101;

Циклический алгоритм умножения показан в табл.3.8.

 

Таблица 3.8. Циклический алгоритм умножения

Этап Результат
Подготовка к циклу i = n _ 1 = 4 _1 = 3; Тело цикла s3 = s4 +y . x3 Так как x3 = 0 Расширение знака s3   s4 = 0000     s3 = s4 = 0000 s3 = 00000
i = i _ 1 = 3 _1 = 2 s2 = s3 +y . x2 Так как x2 = 0 Расширение знака s2     s2 = s3 = 00000 s3 = 000000
i = i _ 1 = 2 _1 = 1 s1 = s2 +y . x2 Так как x1 = 1   Расширение знака s1     s1 = 000000 + 1101 s1 = 110100 s1 = 1110100
i = i _ 1 = 2 _1 = 1 Выход из цикла s0 = s1 +y . x0 Так как x1 = 1   s0 = 1110100 - 1101 s0 = 0001100  
Результат при целочисленной арифметике  
Результат при дробной арифметике  

 

Из приведенного примера видно, что операция умножения выполняется одинаково – как с беззнаковыми числами, независимо от типа данных и арифметики, различие проявляется только на этапе сохранения конечного результата в формате “двойное слово” длиной 2n. Трактовка типа результата – целые или дробные числа – возлагается на пользователя.

 

Date: 2015-07-17; view: 373; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию