Алгоритм выполнения операций умножения двоичных чисел

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Оглавление

 

1. Индивидуальное задание

. Введение

. Разработка алгоритма и программного модуля преобразования данных в заданный формат

. Разработка алгоритма арифметической операции

. Разработка программы-эмулятора

. Тестирование программы

. Вывод

. Список использований литературы

. Листинг программы

 

1. Индивидуальное задание

 

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

Входные данные: Десятичные числа в строковом формате, например 22, 22.33

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

 

2. Введение

 

Алгоритм решения задачи:

)Преобразование входной строки в десятичное число;

)Перевод из десятичной системы счисления в двоичную;

)Преобразование двоичного числа в формат расширенной точности;

)Повторить 1-3 пункты для второго числа;

)Перевод чисел в обратный код;

)Выполнение требуемой операции (умножение);

)Перевод результата в прямой код;

)Нормализация;

)Вычисление погрешностей.

 

3. Разработка алгоритма и программного модуля преобразования данных в заданный формат

 

Формат расширенной точности:

Расширенное вещественное число состоит из 80 бит: первый бит - знак мантиссы, 16 бит - характеристика и 63бита - мантисса. С помощью этого формата можно представить нормированные числа в диапазоне от до .

 

 

Если значение знакового бита равно 1, то число считается отрицательным, если 0 - то положительным. Число нуль считается положительным.

 

Размерность формата80 битаРазмерность мантиссы53 битаРазмерность порядка15 битСмещение порядка+16383

Обратный код.

Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.

Преобразования в обратный код

 

 

Диапазон представляемых значений:

Минимальное число: |12•2-16382 | ? | 3,36210314e-4932|

Максимальное число: |12•216383-1| ? | 5,9486574e+4931|

+16383 -16382 .. +16383

Алгоритм преобразования вещественного десятичного числа в двоичное число с плавающей точкой формата расширенной точности.

1. Представить целую часть вещественного числа в двоичном виде и поставить после нее десятичную точку.

. Преобразовать дробную часть вещественного числа в двоичный формат.

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

. Нормализовать полученное двоичное число, определив значение показателя степени.

. К показателю степени прибавить +16383.

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

. Если число положительное, то в самый старший разряд представления следует записать 0, если отрицательное - то 1.

 

 

Перевод целых чисел методом деления

 

 

Перевод правильных дробей методом умножения

 

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

Причинами погрешностей вычислений на ЭВМ могут быть:

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

использование приближенных методов вычислений, что дает методическую погрешность;

округление результатов элементарных операций;

накапливание погрешностей в последовательности элементарных операций;

сбои в работе ЭВМ.

Абсолютная погрешность - разность между истинным значением величины А и ее значением, полученным из машинного изображения АM (или [A]), т.е. ?[A]=A-AM.

Относительная погрешность представления - это величина [A]=?[A]/AM.

Пример преобразования числа в формат расширенной точности.

К примеру возьмём число 45.56

Целая часть 4510 = 1011012.

.5610= 0.10001111010111000010100011110101110000101011100001011100012.

45.5610=101101.10001111010111000010100011110101110000101011100001011100012.

Нормализуем:

.011011000111101011100001010001111010111000010101110000101110001*25.

Характеристика q =16383+5 = 1000000000001002;

 

010000000000001011011000111101011100001010001111010111000010101110000101110001Sпорядокмантисса

.10001111010111000010100011110101110000101011100001011100012= 45.559999999999999998

Полученное число не равно исходному, потому что мантисса ограниченна.

Абсолютная погрешность: ?[A] = |45.56- 45.559999999999999998| =0.000000000000000002

Относительная погрешность: [A] = ? 4.389815•10-21

 

. Разработка алгоритма арифметической операции

 

Алгоритм умножения двух чисел:

1)Перевод мантисс слагаемых в обратный код;

)Вычисление произведения мантисс сомножителей в форме с фиксированной запятой

)Сложение смещенных порядков сомножителей;

)Нормализация результата.

Перевод мантисс слагаемых в обратный код.

 

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

 

Нормализация результата.

 

5. Разработка программы-эмулятора

 

Разработка структур данных.

Программа разработана на языке Turbo Pascal 7.0.

Для представления чисел в формате расширенной точности испол?/p>