1012.
.5610 = 0.10001111010111000010100011110101110000101011100001011100012.
45.5610 = 101101.1000111101011100001010001111010111000010101110000101110001 2 .
Нормалізуємо:
.011011000111101011100001010001111010111000010101110000101110001 * 2 5 .
Характеристика q = 16383 +5 = 1000000000001002;
.1000111101011100001010001111010111000010101110000101110001 2 = 45.559999999999999998
Отримане число не дорівнює вихідному, тому що мантиса обмежена.
Абсолютна похибка:? [A] = | 45.56-45.559999999999999998 | = 0.000000000000000002
Відносна похибка: [A] =? 4.389815? 10-21
. Розробка алгоритму арифметичної операції
Алгоритм множення двох чисел:
1) Переклад мантисс доданків у зворотний код;
) Обчислення твори мантисс співмножників у формі з фіксованою комою
) Додавання зміщених порядків співмножників;
) Нормалізація результату.
Переклад мантисс доданків у зворотний код.
В
Обчислення твори мантисс співмножників у формі з фіксованою комою
В
Нормалізація результату.
В
5. Розробка програми-емулятора
Розробка структур даних.
Програма розроблена на мові Turbo Pascal 7.0.
Для представлення чисел у форматі розширеної точності використовуємо 3 рядки
Zn - знак числа, типу string [1];
Exp - порядок числа, типу string [15];
Mnts - мантиса, типу string [64];
Програмна реалізація модуля перетворення даних
В
В
Додавання двійкових чисел function summ (a, b: string): string;
В
В
Модифіковане додавання
procedure modslog (mpa1, mpa2, mpb1, mpb2: string; var ms1, ms2: string);
В В
Модифікований зсув
В
Програмна реалізація алгоритму виконання арифметичної операції.
В
В
Структура програми-емулятора.
В
Розробка графічного інтерфейсу
При запуску програми кор...