ргр алгоритмы
.docx
Государственное образовательное учреждение
высшего профессионального образования
«Омский государственный технический университет»
Кафедра «Автоматизированные системы обработки информации и управления»
КУРСОВОЙ ПРОЕКТ
на тему «Разработка арифметического устройства, выполняющего операцию умножения со сдвигом множителя влево, работающего в формате с плавающей запятой в дополнительном коде»
по дисциплине «Арифметические и логические основы вычислительных систем»
студента Юрдановой Кристины Сергеевны группы АС-111
Старший преподаватель_____________________________________И. В. Червенчук
подпись, дата
Студент____________________________________________________К. С. Юрданова
подпись, дата
Омск 2012
Содержание
Введение...............................................................................................................................3
1 Пример выполнения операции........................................................................................4
2 Построение алгоритма выполнения операции...............................................................5
Заключение...........................................................................................................................8
Введение
В расчетно-графической работе показана работа с системами счисления, двоичной арифметикой, арифметическими операциями над двоичными числами.
Во всей цифровой (двоичной) технике основным элементом является двоичная арифметика. В работе подробно разобраны операции с двоичной арифметикой в дополнительном коде. Двоичного умножения сводится к последовательности суммирования, а также в некоторых методах и сдвига двоичного кода.
1 Пример выполнения операции
1) А*В=?
А=0,10101110; В=0,10110101; В>0;
R1=0,10101110; R2=0,10110101.
1. |
∑= ∑+R2 ∑= 0,01010111
|
R1()=1,01101010 R2()=0,01010111 |
2. |
∑= ∑+0 ∑=0,01010111 |
R1()=0,11010100 R2()=0,00101011 |
3. |
∑= ∑+R2 ∑=0,01101000 |
R1()=1,10101000 R2()=0,00010101 |
4. |
∑= ∑+R2 ∑=0,01110010 |
R1()=1,01010000 R2()=0,00001010 |
5. |
∑= ∑+0 ∑=0,1110010 |
R1()=0,10100000 R2()=0,00000101 |
6. |
∑= ∑+R2 ∑=0,01110100 |
R1()=1,01000000 R2()=0,00000010 |
7. |
∑= ∑+0 ∑=0,01110100 |
R1()=0,10000000 R2()=0,00000001 |
8. |
∑= ∑+R2 ∑=0,01110100 – Ответ. |
R1()=1,00000000 R2()=0,00000000 |
2 Построение алгоритма выполнения операции
Шаг 1. Произведение положить равным нулю, загрузить операнды.
Шаг 2. Проверка регистра мантиссы, не должны быть меньше нуля. Если они меньше, то выводим ответ.
Шаг 3. Сдвиг влево множимого на один разряд.
Шаг 4. Сдвиг вправо множителя на один разряд.
Шаг 5. Проверка: если все ли разряды мантиссы операнда B обработаны, то перейти к шагу 5, если нет, то – к шагу 2.
Шаг 6. Работа с порядками.
Шаг 7. Нормализация ответа.
Шаг 8. Если множитель отрицательный, требуется коррекция в виде прибавления инверсного значения мантиссы множимого в дополнительном коде.
Схема алгоритма изображена на рисунке 1.
Схема устройства изображена на рисунке 2.
Рисунок 1 - Алгоритм выполнения операции.
Рисунок 2 - Схема устройства.
Заключение
В данной расчетно-графической работе был приведен один из алгоритмов умножения двоичных чисел дополнительном коде с плавающей запятой со сдвигом влево. А так же приведен пример решения подобных задач. Метод является трудоемкий за счет сдвига мантисс числа при каждой операции, а так же из-за работы с числами в дополнительном коде и работой с порядками чисел.
Список использованных источников
1) Потапов В.И., Шафеева О.П. Компьютерная арифметика и алгоритмическое моделирование арифметических операций: Учеб. пособие. Омск: Изд-во ОмГТУ, 2005.