Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR_AK.docx
Скачиваний:
4
Добавлен:
05.09.2019
Размер:
79.57 Кб
Скачать

6 Виконання операцій над числами з плаваючою комою

Використовувати числа із сталою комою часто буває зручно, проте при досить великих чи малих значеннях таких чисел їх розміщення в пам’яті стає не компактним. Тому часто використовуються числа з так званою плаваючою комою(ЧПК). Особливістю такого формату чисел є те, що останні представляються у вигляді мантиси, яка множиться на порядок числа. При цьому мантиса є нормалізованою (приведеною до стандартного вигляду).

Найбільше поширення в нас час отримав стандарт представлення ЧПК- IEEE-754. За правилами цього стандарту ЧПК можуть представлятися з допомогою 32-ох біт(число одинарної точності), 42-ох біт(розширене число одинарної точності), 64-ох та 80-ти біт(числа подвійної та розширеної подвійної точності відповідно). Як приклад можна розглянути формат одинарної точності, якому в мовах високого рівня відповідає тип float.

ЧПК одинарної точності представляються наступним чином: перший біт числа є знаковим і вказує на знак мантиси; наступні вісім біт вказують порядок числа із зміщенням на 128 одиниць (число нуль представляється, як 128); 23 біти, які залишилися відводяться на мантису. Потрібно зауважити, що в форматі IEEE-754 мантиса є дробовим числом, ціла частина якого рівна одиниці. До того ж при записі одиниця опускається, а записується тільки дробова частина.

Також великого поширення набуло формалізоване представлення ЧПК. Воно дещо відрізняється від стандарту IEEE-754.Особливості формалізованого представлення полягають у тому, що мантиса записується одразу після її знаку, а степінь розглядається теж як число із знаком. Структура ЧПК, представленого в формалізованому вигляді, одиночної довжини(32 біти): перший біт – біт знаку мантиси; двадцять три наступних біти – сама мантиса; двадцять п’ятий біт – біт знаку порядку; сім останніх бітів – значення порядку.

Враховуючи вище наведені правила можна записати числа А та В, як ЧПК одинарної точності в формалізованому вигляді. Проте для можливості проведення над ними арифметичних дій потрібно дещо змінити число В, задля наближення значення його порядку до значення порядку числа А. Зміна числа б полягає в заміні його молодшого байту(F2 hex) на нове значення(B2 hex).

Таким чином, числа А та В матимуть значення:

Число А можна розписати наступним чином:

– перший біт, вказує на те, що число А - додатне;

- мантиса числа А;

- двадцять п’ятий, вказує на те, що порядок є від’ємним числом;

– значення порядку числа А.

Як наслідок, число А можна представити в наступному вигляді:

Аналогічні маніпуляції можна виконати і з числом В.

– знак мантиси числа В;

– мантиса;

- знак порядку;

– порядок числа В.

Як наслідок, число В можна представити у вигляді:

Арифметичні операції з ЧПК відбуваються для мантис та порядків окремо. Для виконання арифметичних операцій додавання та віднімання над ЧПК потрібно звести два числа до одного порядку. При зведенні варто збільшувати порядок меншого числа, оскільки зменшення порядку більшого числа може призвести до виходу із розрядної сітки. Сама ж операція зведення базується до зсуву мантиси меншого числа вправо на кількість біт, яка рівна різниці між порядками. Після виконання зсуву, порядки будуть однаковими.

Враховуючи наведені правила можна виконати зрівнювання порядків чисел А та В. Варто зазначити, що різниця між порядками рівна:

.

При цьому порядок числа А є меншим і над його мантисою потрібно виконати операцію зсуву вправо на 11 розрядів. Як наслідок, нове значення мантиси числа А матиме вигляд:

Очевидним стає те, що точність представлення числа А дещо зменшилась внаслідок втрати 11-ти молодших розрядів цього числа. Звідси випливає характерна ознака ЧПК – наближеність обчислень.

Після зрівняння порядків можна виконувати додавання та віднімання ЧПК А та В. Проте число В є від’ємним і більшим по модулю за число А, тому є необхідність представити мантису числа А в додатковому коді:

Виконання операції додавання А та В фактично буде операцією віднімання, оскільки В – від’ємне число. Тому додавання мантис чисел А та В показано на рисунку 6.1.

+

1.

1111

1111

1111

0100

0000

110

0.

0010

0111

0000

0011

0011

100

0.

0010

0110

1111

0111

0100

010

Рисунок 6.1 – Виконання операції додавання мантис А та В

Таким чином результатом операції додавання буде від’ємне число С, яке можна записати наступним чином:

В базовому форматі ЧПК, з нормалізованою мантисою число С матиме вигляд:

Для виконання операції віднімання (А-В) необхідно використати мантиси в прямих кодах і здійснити операцію їх додавання, що і показано на рисунку 6.2.

+

0.

0000

0000

0000

1011

1111

010

0.

0010

0111

0000

0011

0011

100

0.

0010

0111

0000

1111

0010

110

Рисунок 6.2 – Виконання віднімання мантис А та В (А-В)

Результатом віднімання буде додатне число D, яке можна записати наступним чином:

В базовому форматі ЧПК, з нормалізованою мантисою число С матиме вигляд:

Виконання операції множення має свої особливості, відмінні від додавання та віднімання. Для множення ЧПК потрібно окремо здійснювати дії над мантисами та порядками. Порядки при множенні додаються (зведення до спілного порядку не потрібне), а мантиси перемножуються згідно з правилами двійкової арифметики. Знак результуючого числа отримується шляхом додавання по модулю два бітів знаку множників.

Враховуючи наведені вище правила можна здійснити операцію множення чисел А та В:

А) порядок результуючого числа буде рівний:

+

011

1101

011

0010

110

1111

Б)множення мантис показане на рисунку 6.3.

0.

0101

1111

1010

0011

1100

101

0.

0010

0111

0000

0011

0011

100

001

0111

1110

1000

1111

0010

1

0010

1111

1101

0001

1110

0101

0

0101

1111

1010

0011

1100

101

0010

1111

1101

0001

1110

0101

0

0101

1111

1010

0011

1100

101

0010

1111

1101

0001

1110

0101

0

0101

1111

1010

0011

1100

101

00

1011

1111

0100

0111

1001

01

0

0101

1111

1010

0011

1100

101

0.0

0000

0111

0100

1001

1001

0011

1100

1110

1000

1001

0001

1

Рисунок 6.3 – Множення мантис чисел А та Б

Після скорочення довжини мантиси до необхідного значення та її нормалізації число E, яке являється результатом виконання операції множення, в форматі ЧПК запишеться наступним чином:

Як наслідок, було розглянуто особливості виконання операцій із ЧПК та досліджено властивості таких чисел.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]