
ОФК
.pdf
4.Ірраціональнічисла.
5.Комплекснічисла.
Одназ властивостейнаборувсіхцілихчисел –замкненістьстосовно
операційдодавання,відніманняімноження. Інакшекажучи,длякожноїпари цілих чисел a і b числа a b , a b і a b – також цілі числа. Ряд цілих чиселнезамкненийстосовноділення, оскількиіснуютьтакі значення a і b ,
дляякихчасткувідїхньогоділеннянеможнавиразитиувигляді цілогочисла, наприклад, 72 , 3
5 ,або 1 0 ).
Числа скінченої точності не замкнені щодо усіх чотирьох операцій. Нижченаведеніприкладиопераційнадтрирозряднимидесятковимичислами
(попереднійприклад):
600+ 600 = 1200 |
(надтовелике число); |
003 – 005 = -2 |
(від’ємнечисло); |
050 *050 = 2500 |
(надтовелике число); |
007/002= 3,5 |
(нецілечисло). |
Відхилення можна розділити на два класи: операції, результат яких перевищує найбільше число ряду (помилка переповнення) або менше ніж найменшечислоряду(помилкачерезвтратузначності);аоперації, результат яких не є надто великим або надто малим, а просто не є членом ряду. У
наведених вище прикладах перші три належать до першого класу, а четвертий – до другого класу.
Оскільки розмір пам’яті комп’ютера обмежений і він повинен виконувати арифметичні дії над числами скінченої точності, результати визначених обчислень будуть неправильними з поглядукласичної математики. Обчислювальний пристрій, якийвидає неправильнувідповідь, може видаватися дивним на перший погляд, проте помилка у такому разі – це тількинаслідокйогоскінченоїприроди.Деякікомп’ютеримістятьспеціальне апаратнезабезпечення, якевизначаєпомилкипереповнення. Алгебра чисел скінченої точності відрізняється від звичайної алгебри. Для прикладу розглянемоасоціативнийзакон:
a b c a b c .
Обчислимо обидві частини виразу для a 700 , b 400 і c 300 . Умова, що наш комп’ютер трирозрядний – залишається. У лівій частині
40
спочаткуобчислимозначення b c . Вонодорівнює 100. Потім додамоце ?enei ai a і отримаємо800.
Щобобчислити правучастину, спочаткузнайдемо a b . Результат буде залежати від комп’ютера, але він не буде дорівнювати 1100. Для трирозрядних цілих чисел одержимо переповнення з втратою старшого розряду, тобточисло100. Віднімання числа c 300 з будь-якогочисла, яке відрізняєтьсявід1100,недаєрезультату,щодорівнює800.Асоціативнийзакон недіє,тобтопослідовністьопераційважлива.
Інший приклад – дистрибутивний закон: a b c a b a c .
Обчислимо обидві частини виразу для a 5 , b 210 i c 195 . У лівій частині 5 15 75 . У правій частині 75 не отримуємо, оскільки результат a b 5 210 1050 виходить за межі можливогочисловогоряду.
Розглянувши ці приклади, дехто може зробити висновок, що комп’ютери абсолютно непридатні для виконання арифметичних дій. Висновок насправді неправильний, але ці приклади наочно ілюструють важливістьрозуміння того, як працюєкомп’ютері якіобмеження вінмає.
Формою подання чисел у комп’ютерах називається сукупність правил, які дають змогу встановити взаємну відповідність між записом числа тайогокількісним еквівалентом.
Машинне (автоматне) зображення числа – це подання числа у розрядній сітці апаратних регістрів комп’ютера. Умовне позначення машинногозображеннячисла, наприклад, A будемозаписувати як A .Тоді справедливетакеспіввідношення:
A A K A , |
(3.1) |
де K A – коефіцієнт, значення якого залежить від форми подання числа у автоматі.
Черезнаявністьобмеженнядовжинимашиннихслівмножиначисел, якіможна податиукомп’ютері– скінчена. Порівняннярізнихформ подання чисел у комп’ютерах звичайно виконують на підставі оцінки діапазону і точностіподання числа.
Якмизнаємо, дляобробкиінформаціїукомп’ютерівикористовується двійковасистемачислення.Цепояснюєтьсятим,зокрема, щодлярозміщення чисел(операндів)укомп’ютерахвикористовуютьрегістриікоміркипам’яті,
щоскладаютьсяіз тригерівабо елементівізтригерноюхарактеристикою, 41

які, як відомо, мають два стійкі стани. Одному з цих станів ставиться у відповідність 1, а іншому – 0. Кожний з тригерів слугує для розміщення найменшоїінформаційноїодиниціудвійковійсистемічислення–двійкового розряду,щоназиваєтьсябітом.Вісім бітстановлятьбайт.
Кількість тригерів, тобто двійкових розрядів, у регістрі або комірці пам’яті визначає довжину слова, яка характерна для цього комп’ютера, а
сукупність цих двійкових розрядів називається розрядною сіткою. Номер розряду такої сітки, відведеного для зображення цілого числа у двійковій системічислення, збігаєтьсязвідповіднимпоказником степенядвійки.
Під час розміщення інформації, яка обробляється, у комп’ютері потрібновраховуватинеобхідністьконтролюїїобробкиіадресаціїукомірках оперативногозапам’ятовуючогопристрою(ОЗП).Цезумовлюєпевнівимоги доорганізаціїрозрядноїсіткикомп’ютера.Підрозрядноюсіткоюкомп’ютера розуміютькількістьрозрядів, щонеобхіднідлярозміщення укоміркахОЗП повногомашинногослова. Для кожноготипукомп’ютера (процесора) вона маєстроговизначенукількістьрозрядів.Наприклад,8,16,32,64,128розрядів тощо.
Крімзнакачисла, узаписучислаєщекома,якавідділяє цілучастину числавід дробової. Місцекомиповиннобутиупевнийспосіб визначеним. З іншого боку, місце коми зовсім не впливає на значення числа в кожному розряді, а лишезмінюєвагукожногорозряду, а, відтак, значеннячислового еквівалентавсьогочислаумежахзаданої розрядноїсітки.
Розглянемодваприкладидодаванняп’ятирозряднихдесятковихчисел.
2,1375 2137,5
1,2637 1263,7
4,4012 4401,2
Можналегкопомітити, щоуоднойменнихрозрядах двохрезультатів,
якщорозглядатиїх,наприклад,зліванаправо,містятьсяоднаковічисла,проте зрізнимчисловим еквівалентом,щовизначаєтьсямісцем коми.Тобтоможна стверджувати, що під час виконання алгебраїчних операцій місце коми не впливаєна визначеннячиселкожногорозрядурезультату, атомудля комиу форматі числа не потрібно відводити окремого розряду.
42
Як зазначалося раніше, в будь-яких цифрових автоматах довжина розрядної сітки вибраної системи числення фіксована, що принципово обмежуєточністьі діапазонподаннячисел.
Нехай довжина розрядної сітки дорівнює якомусь додатному числу, наприклад,n. Тоді
|
Ad max d n 1; |
Ad min d n 1 . |
|
Наприклад, удвійковій системі числення, якщо n 3 , то A2 max |
|
1112 |
710 , тобтомаксимальне додатнечисло, якеможе бутизаписане, – |
7,амінімальневід’ємне є -7,поданняякогоудвійковійсистемібудерозглянуто далі.
Діапазонподання чиселусистемі числення, щозадана – цеінтервал числовоїосі, міжмаксимальним імінімальним числами, значенняяких, як мибачимо, залежитьвіддовжинирозрядноїсітки.
Укомп’ютерахвикористовуютьдвіформиподаннячиселурозрядній
сітці:
–натуральна,абоз фіксованоюкомою;
–нормальна, або з рухомою (плаваючою) комою.
3.2. Подання чисел з фіксованою комою
За натуральної форми подання чисел місце коми, яка відділяє цілу частинучисла віддробової,постійнедлявсіхчисел, якимиоперуєпроцесор.
Конструюючикомп’ютери, заздалегітьвстановлюютькількістьрозрядів,що відводятьдляцілоїчастиничиселі длядробової.
Щоби спростити функціонування процесора комп’ютера, необхідно обмежити вхідну інформацію яким-небудь одним видом чисел – на вхід процесора бажано подавати або цілі числа, або правильні дроби, або будьякічисла. Це дастьзмогувизначитизначення коефіцієнта K A . Наприклад,
якщонавхід цифровогоавтоматанадходятьтільки правильнідроби,то
1 A ф 1,
де A ф – машинне зображення числа для форми подання з фіксованою комою.
43

Звичайно кома фіксується двома способами:
-перед старшим розрядом, тоді числа у комп’ютері подаються як правильнідроби;
-післямолодшогорозряду, тодічислаподаються якцілі.
Вибір коефіцієнта K A , який задовольняє умови (3.1) означає, що у машинномузображеннікома завждистоїтьпісляцілоїчастинидробу, тобто перед її старшим розрядом. Відповідно можна зберігати тільки дробову частину числа (цифрову частину), а у розряді цілої частини подавати додатковуінформацію, наприклад,знак.
На рис. 3.1 наведена розрядна сітка процесора для подання чисел з фіксованою комою перед старшим розрядом.
Знак |
2 1 |
2 2 |
2 3 |
2 4 |
|
|
2 n |
a0 |
a1 |
a2 |
a3 |
a4 |
. . . |
an 3 an 2 |
an 1 an |
0 |
1 |
2 |
3 |
4 |
|
n 3 n 2 n 1 n |
Рис.3.1.Схема розрядноїсіткикомп’ютеразфіксованоюкомою перед старшим розрядом
Розрядитакоїсіткинумеруютьзліванаправо,починаючизнульового,
який називають знаковим розрядом. Можлива і зворотна нумерація, тоді знаковим будестарший розряд,тобто n -й. Яквже зазначалося, узнаковому розряді0відповідає плюсу,а1– мінусу. Дляоднозначногоподаннячиселу такому форматі обов’язковою є умова, щоб ціла частина у числах дорівнювала0.Нарозряднійсітцівказанавагакожногорозряду.Максимальне імінімальне, відмінне віднуля, машиннесловозаабсолютноювеличиною,
тобтобез врахуваннязнака, відповіднодорівнюють:
|
X |
|
,1111...11 1 2 n ; |
|
|
X |
|
, 0000...001 2 n . |
||||
|
|
|
|
|||||||||
|
|
max |
|
|
|
|
min |
|
||||
|
|
|
|
|
|
|
n |
|
|
|
|
n 1 |
Діапазон чисел всіх можливих значень у такому разі визначається |
||||||||||||
нерівністю:2 n |
|
|
X |
|
1 2 n .Так,наприклад,для32-розрядноїсіткичисла |
|||||||
|
|
|||||||||||
будутьміститисявдіапазонівід 2 31 |
0,5 10 9 до 1 2 31 0,9 9 . |
|||||||||||
44 |
|
|
|
|
|
|
|
|
|
|
|
|
Аналізуючицінерівності, можнавідзначититаке:
1.Діапазон подання чисел у машинах з фіксованою комою, порівняно невеликий;
2.Число, абсолютнезначенняякогоменшевід мінімальногомашинного слова 2 n , буде записане у комп’ютері у вигляді нуля. Таке число
називають машинним нулем, хоч воно насправді не дорівнює нулеві.
Для його зображення бракує розрядів умашинномуслові.
3.Число,щоотриманеурезультатіобчисленьзаабсолютнимзначенням, неповинне перевищуватимаксимальногомашинногочисла 1 2 n .
Якщо число виходить за верхню межу, то створена ціла частина не може бути розташованаурозрядах машинногословаі томугубиться, що призводит до спотворення результату. У такому разі говорять, що виниклопереповненнярозрядноїсітки.
Щоб недопустити переповненнярозрядної сітки підчас обчислень, підчас підготовкидорозв’язаннязадачі укомп’ютерізастосовуютьтакзвані
масштабні коефіцієнти, за допомогою яких числа, що беруть участь у обчисленнях, і результати розрахунку за модулем не перевищують
максимального машинного числа. Масштабний коефіцієнт m поєднує |
||||||||
реальне істинне число Y |
і його машинне зображення (код) X таким |
|||||||
співвідношенням: |
|
X |
|
m |
|
Y |
|
1. |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
4. Відносна похибка обчислень буде тим більшою, чим меншими за абсолютним значеннямбудуть числа, якіберутьучасть вобчисленнях. Відноснапохибкаобчислень визначаєтьсяяк:
A 100,
де –абсолютна похибка;
A –двійковечисло.
Так, наприклад, якщоукомп’ютеріє n розрядівчисла, тоабсолютна похибка визначається точністю її останнього знака, тобто у такому разі
2 n . Нехай, n 4 , тоді для чисел |
A 0,1111 і |
A 0,0001 відносна |
||||
похибкабуде такою: |
1 |
|
|
|
2 |
|
|
|
|
|
|
||
2 4 |
|
|
2 4 |
|
||
min1 |
100% 6,7% ; |
max 2 |
|
|
|
100% 100% . |
|
||||||
15 16 |
|
|
1 16 |
|
||
|
|
|
|
|
||
|
|
|
|
|
|
45 |

На рис. 3.2. наведена розрядна сітка процесора для подання чисел з комою, фіксованою після молодшого розряду.
Знак |
2n 1 |
2n 2 |
2n 3 |
2n 4 |
|
23 |
22 |
21 |
20 |
a0 |
a1 |
a2 |
a3 |
a4 |
. . . |
an 3 |
an 2 |
an 1 |
an |
0 |
1 |
2 |
3 |
4 |
|
n 3 n 2 n 1 n |
Рис.3.2. Cхемарозрядноїсіткикомп’ютера зкомою,
фіксованою після молодшого розряду
Якщо кома фіксована після молодшого розряду, розрядна сітка дає змогуподативід’ємніідодатнідвійковічисла, модульяких 1 X 2n 1 ,
де n –кількістьчисловихрозрядівурозряднійсітцікомп’ютера. Всічисла,
модуліяких меншіза1 абобільшініж |
2n 1 , неможутьбути поданіуцій |
розрядній сітці, а тому, готуючись |
до обчислення задачі на такому |
комп’ютері,такожнеобхідновводитимасштабнікоефіцієнти.
Середкомандкомп’ютерівєтакі,вякихопераціяз фіксованоюкомою
виконуєтьсянетількинадчислами,алеінададресами.Утакомуразіоперанд інтерпретується як двійкове число без знака удвічі більше ніж із знаком у розряднійсітці комп’ютера.
Перевагою використання натурального формату порівнянно із нормальним форматом є висока швидкодія обробки інформації. Робота комп’ютерівурежимі із фіксованоюкомоювикористовується, зазвичай, для керування технологічними процесами і обробки інформації у реальному масштабі часу.
3.2.1. Формати арифметики підвищеної точності
Під час виконання розрахунків деяких задач часто з’ясовується, що довжина слів, з якими працює процесор комп’ютера, недостатня для досягненнявизначеноїточностіобчислень.Цеозначає,щонеобхіднеподання чиселбільшихрозмірівіутакійформі, щобпроцесормігпрацюватизними. Наприклад, дуже поширенівосьми розряднімікропроцесори, дають змогу використовуватичислаудіапазонівід-128до+127.Очевидно,щодлябільшості задачтакийдіапазоннепридатний. Використовуючидвавосьмибітовіслова
46
зподаннямвід’ємнихчиселудоповняльномукоді(див.розділ4.3),отримаємо діапазон від -32 768 до +32 767. У такому разі похибка подання чисел оцінюєтьсяяк ±0,0015%.
Для розв’язання багатьох задач вказаної подвійної точності достатньо. Алеінодіпотрібнащевища точністьобчислень, щодосягається, наприклад, потрійноюточністюподаннячисел:1бітдлязнака(див.главу4)
і 23 біти для абсолютної величини числа. Під час використання у восьми розрядному мікропроцесорі потрійної точності подання чисел діапазон останніхпростягаєтьсявід -8 388698до +8388607,включноз0.Цезабезпечує значноменшупохибкуподаннячисел порівняннозвикористанням дляцієї метитільки8бітів.
Все вище сказане стосується і процесорів з 16-ти, 32-х і більше розрядноюсіткою (зрозуміло, щочимбільш розрядівмаєсітка, тим менше виникаєпроблем ізточністю).
Але не все так просто. За отриману додаткову точність доводиться розплачуватися значним збільшенням часу обробки даних і обсягу оперативноїпам’ятідлязбереженняданих,проміжнихрезультатівіпереносів, щовиникають. Нехай,наприклад,михочемовикористатипотрійнупідвищену точність під час виконання операції додавання у восьми розрядному комп’ютері. У такому разі недостатньо вибрати з пам’яті два слова, сформувати їхню суму в акумуляторі і записати результат у однобайтову коміркупам’яті.
Спочаткунеобхідновиконатизвертаннядомолодшихбайтівкожного з двох чисел. Післядодаваннядвох молодшихбайтіврезультат записуютьу пам’ять, аможливі переносипідлягаютьтимчасовомузберіганню. Потім з пам’яті вибирають середні байти чисел і додають між собою і з бітами переносу, отриманими у результаті попередньої процедури додавання.
Результат записують у комірку пам’яті, спеціально зарезервовану для збереження середнього байта суми. Нарешті, з пам’яті вибирають старші байтичисел,щододаються,доїхньоїсумидодаютьбітипереносу, яківиникли під час додавання середніх байтів і результат записують укоміркупам’яті, зарезервованудля старшогобайта суми.
Орієнтовні витрати для, наприклад, потрійної точності порівняно з одинарною точністю – учасі втричі більші і в обсязі пам’яті також втричі більші. І це не єдиний недолік арифметики з підвищеною точністю. Якщо,
47

наприклад, під час додавання чисел з потрійною точністю відбудеться переривання, щобулоініційованеіншими кроками програми, тонеобхідно тимчасово зберегти вміст регістра стану. Інакше будуть втрачені проміжні біти переносу, щоприведе до неправильного результату.
Арифметиказ підвищеноюточністюзастосовується дужеобмежено. Проблеми, які виникають уразівикористання подання чисел з фіксованою комою, можуть бутивирішеніза допомогою іншогометоду– поданнячисел з рухомою комою.
3.3. Подання чисел з рухомою комою
Багаторізноманітнихобчисленьпотребуютьдужевеликогодіапазону чисел. Наприклад, в астрономічні обчислення можуть входити маса електрона (9 10 28 грамів ) і, водночас, маса Сонця ( 2 10 33 грамів ). Діапазончисел тутперевищує 1060 . Длявсіхтаких обчисленьудесятковій формі повинні бути 34 розряди ліворуч від коми і 28 розрядів праворуч від неї, разом – 62розряди длязаписурезультату.
Очевидно, що нам потрібний такий формат подання чисел, у якому діапазон їхнього зображення не залежатиме від числа значущих розрядів. Таким форматом є формат подання чисел з рухомою комою.
Подання чисел з рухомою комою ґрунтується на зображенні чисел, щовідповідає записучиселунормальнійформі:
A M d p ,
де p –цілечисло, якеназиваєтьсяпорядкомчисла A ; d – основа числення;
M– мантисачисла A (звичайно M 1 ).
Фактично місце коми у мантисі M визначається величиною
порядку p . Із зміною порядку p у більшу або меншу сторону, кома відповіднопереміщуєтьсяліворучабоправоруч, тобторухається(“плаває”) узображенні числа. Цейпроцеспроілюстрованонаприкладах:
23410 0,234 103 0,00234 105 234000 10 3 ;
101101 |
0,101101 10110 |
0,00101101 101000 . |
2 |
|
2 |
Можназауважити, щохочачислаунаведених прикладаходнаковіза абсолютноювеличиною, протемантиса потребуєрізної кількостірозрядів.
48
Числа, які задовольняють умові 1 d M 1 , називають нормалізованими. Зображення таких чисел полягає у тому, що у першому розряді мантиси стоїть цифра, відмінна від нуля. Мантиса у такому разі потребує мінімальної кількості розрядів. Операція, яка перетворює зображення числа у нормалізовану форму, називається операцією нормалізації.
Як видно з наведеного, для різних порядків числа місце коми буває різним. Тому комп’ютери, які використовують таку форму запису числа, зараховуютьдомашин(процесорів)зрухомоюкомою. Уїхній пам’ятічисла зберігаються у нормалізованій формі. У розрядній сітці комп’ютерів фіксуютьсязнакчисла,знакпорядку,порядокчислаічисловийвиразмантиси.
На рис. 3.3 подано приклад розрядної сітки комп’ютера з рухомою комою.
0 |
1 |
2 |
. . . . . . . . . . . . . . . . . . m n 1 |
|||||||||||||
|
0 |
|
0 |
|
1 |
|
2 |
. . . |
|
m |
|
|
2 |
. . . |
|
n |
|
|
|
|
|
|
1 |
|
|
|
|||||||
Знак |
Знак |
|
|
Порядок |
|
|
|
Мантиса |
|
|
||||||
числа порядку |
|
|
|
|
|
|
|
|
|
|
|
|
Рис.3.3.Схема розрядноїсіткикомп’ютера зрухомоюкомою
Нормалізоване подання чисел дає змогузберігати урозрядній сітці більшу кількість цифр, що мають значення, тому точність обчислень підвищується.Звичайноукомп’ютерінормалізаціяздійснюєтьсяавтоматично якпідчасвведення чисел, так іпідчасобчислень(післявиконаннячергової операції).Мантиса зсувається ліворучнанеобхіднукількістьрозрядів(тобто збільшується)івиконуєтьсявідповіднезменшенняпорядку, тобтовиконується “нормалізаціяліворуч”.Під часвиконанняопераціїдодаванняабовіднімання нормалізованихчисел з різними порядкамиодне з них “денормалізується” довирівнюванняпорядків, асума (аборізниця)зновунормалізується.
У комп’ютерах із рухомою комою можливе переповнення розрядної сітки,таксамо, якіукомп’ютерахізфіксованоюкомою.Наприклад,переповненняможевиникнутиуразідодаваннянормалізованих чиселзоднаковими порядкамиіоднаковимизнаками.Утакомуразі з’являється одиниця ліворуч від коми (тобтояк ціла частина числа). Таке переповнення нейтралізується
49

зсувом мантисиправоручнаодинрозрядізбільшеннямпорядкунаодиницю,
тобто виконується “нормалізація праворуч”.
Відкількостірозрядів,щовідведенідлязбереженняпорядку,залежить діапазон чисел, які записуються для виконання обчислень, а від кількості розрядів,щовідведенідлямантиси,–точністьзаписучисла.Якщодлямантиси
відведеноn розрядів, апорядку– |
p розрядів,томаксимальнеімінімальнеза |
||||||||||
абсолютним значенням нормалізованедвійковечислобудетаким: |
|||||||||||
|
|
|
|
|
|
|
|
|
p |
|
n |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
max 2 |
111...1 |
0,111...1 2 2 p 1 1 2 n i |
||||||
|
|
||||||||||
|
|
|
|
|
|
|
|
|
p |
|
n |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
min |
2 |
111...1 |
0,1000...0 2 2 p 1 2 1 . |
||
|
|
|
|
|
Діапазон чисел у комп’ютері з рухомою комою визначається нерівністю:
2 2 p 1 2 1 |
|
A |
|
2 2 p 1 1 2 n . |
(3.2) |
|
|
За достатньовеликих n (звичайноn >30), вираз(1–2n) 1 інерівність (3.2)набуваєвигляду:
2 |
2 p |
|
|
A |
|
2 |
2 p 1 |
(3.3) |
|
|
|
. |
З цієї нерівності видно, що діапазон чисел залежить переважно від порядку p . Якщо число перевищує верхню межу нерівності (3.3), то відбувається переповнення розрядної сітки. Якщо число вийде за нижню межу нерівності (3.3), то воно буде відповідати машинному нулеві. Так, наприклад,для32-розрядноїсіткиякщо n 24 i p 6 ідварозряди виділяють длязнаку, числабудутьміститися удіапазоні
від 2 1 2 63 10 20 до 1 2 24 263 1019
Порівнюючиприкладиподаннячиселзфіксованоюкомою(див.розділ 3.2) та рухомою комою для 32-розрядних чисел, можна зауважити, що 10 20 0,5 10 9 , тобто діапазон подання чисел з рухомою комою значно більший.
Якщокількістьрозрядів порядку p будевзята достатньовеликою,то абсолютна величина числа A буденастількивелика,щопідчасобчисленнях
50
длябільшостізадачусічисланебудутьвиходитиздіапазонучиселкомп’ютера і не потрібно буде застосовувати масштабні коефіцієнти. Але водночас зменшується точність обчислень, тому що збільшуються помилки закруглення і втрати значності при нормалізації. Для виправлення цього недолікуусучаснихкомп’ютерахпередбачається можливістьперерозподілу розрядів машинногословаміжмантисою іпорядкомпрограмнимспособом.
Удеяких процесорах використовується подання чисел з рухомою комою із недвійковою основою системи числення – шістнадцятковою або, деколи,вісімковою(d 16 і d 8 ).Використаннянедвійковоїосновидещо зменшує точність обчислень за заданої кількості розрядів мантиси, але дає змогу збільшити діапазон чисел, які можна подати у комп’ютері і пришвидшитивиконаннядеякихоперацій,зокрема–нормалізації, зарахунок того,щозсуввиконуєтьсявідразунадекількадвійковихрозрядів(якщо d 8 – на три розряди, якщо d 16 – на чотири розряди). Можливість отримання ненормалізованих чиселуході обчисленьзначнозменшується.
Уразі застосуваннянедвійковоїоснови d 16 зручнопорядокчисла зображатичерез характеристику p x –зміщеніпорядки, щоявляютьсобою
суму дійсного порядку p числа із врахуванням знака і числа 64, тобто: p x p 64 . Ілюстрація цьогометодунаведена на рис. 3.4.
Від’ємніі додатнідійсніпорядки p ,збільшившисьна64,виявляються зміщеними на числовій осі в додатний бік і подаються семи-розрядними двійковимичисламибеззнакавід0до127(рис.3.4).Оскількивсіхарактеристики
p x є додатними, |
це спрощує виконання деяких дій над ними, наприклад, |
|||||
відбуваєтьсявиключенняопераційнадзнакамипорядків. |
||||||
-64 |
0 |
+63 |
p |
|
Дійсні порядки: |
|
|
– у десятковій формі; |
|||||
+ |
+ |
+ |
|
|
||
|
|
|
||||
1000000 0000000 0111111 |
|
– у двійковій формі; |
||||
-64+64=0 |
0+64=64 |
+63+64=127 |
p x |
Характеристики: |
||
– у десятковій формі; |
||||||
+ |
|
+ |
+ |
|
||
|
|
|
||||
1000000 0000000 0111111 |
|
– у двійковій формі; |
Рис.3.4. Співвідношенняміжвеличинами характеристикі дійсними порядками
Укомп’ютерах вопераціяхз рухомоюкомоючисламожутьбутидвох форматів:короткий–уоднеслово(рис. 3.5а)ідовгий, подвійноїточності–у подвійне слово (рис. 3.5б). Формати розрізняються довжиною мантиси.
51

Характеристики і мантиси додатних і від’ємних чисел зберігаються у оперативнійпам’ятіупрямомукоді(рис.3.5в).
|
Знак |
Характеристика |
|
|
Мантиса |
|
|
0 |
1 |
7 8 |
|
a) |
|
|
31 |
|
|
|
|
|
|
|
|
|
Знак |
Характеристика |
|
|
Мантиса |
|
|
0 |
1 |
7 8 |
|
б) |
|
|
63 |
|
|
|
|
|
|
|
|
|
1 |
100 001 |
1010 |
0000 |
0111 |
1000 |
0001 |
|
|
|
|
в) |
|
|
|
Рис. 3.5. Формати двійкових чисел з рухомою комою
Удеякихміні-імікро-ЕОМтакожпередбачена можливістьобробляти числа з рухомою комою. Формат слова даних з рухомою комою для 16бітних мікрокомп’ютерів показаний на рис.3.6а. Для збільшення точності поданнядробовоїчастиничислаідіапазонуподання чиселвикористовують два16-бітніслова, щоприлягаютьодиндоодного(рис.3.6б).
15 14 |
9 8 |
0 |
Знак числа Мантиса
Характеристика
a)
15 14 |
9 8 |
0 |
15 |
0 |
Знак
числа Характеристика Мантиса
б)
Рис. 3.6. Формати двійкових чисел з рухомою комою для мікрокомп’ютерів
52
Молодша частина мантиси зберігається у наступному, старшому заадресою 16-бітномуслові.
3.4. Подання двійково-десяткових чисел
Двійково-десятковічисла укомп’ютерахподаютьтільки уприродній формі. Двійково-десяткові числа кодуються тетрадами у коді 8-4-2-1 і використовують два формати: упакований (ущільнений) і розпакований
(зонний). В упакованому форматі в одному байті містяться дві двійководесяткові цифри. Код знака розміщується у правих чотирьох розрядах молодшого байта (рис. 3.7а). У розпакованому форматі молодші чотири розряди байта зайняті цифрою, а у решті розрядів міститься службовий символ (зона). У молодший байт записується код знака і код молодшої десятковоїцифри(рис.3.7б).
Цифра
Цифра
Цифра
. . .
Цифра
Цифра
Цифра
Знак
Молодший байт
a)
Зона
Цифра
Зона
. . .
Цифра
Зона
Цифра
Знак
Молодший байт
б)
Рис. 3.7. Формати двійково-десяткових чисел
Двійково-десятковічисла вводятьсяупроцесоркомп’ютеразазвичай у розпакованому форматі, а під час виконання операцій переводять за спеціальною програмою в упакований формат; під час виведення з комп’ютерадесятковічисла зновуперетворюютьурозпакований форматза спеціальною програмою.
Упакований формат подання двійково-десяткових чисел дає змогу ефективновикористовуватиоперативнупам’ять(ОП),скоротити тривалість арифметичних операцій і пришвидшити обмін інформацією між ОП і периферійними пристроями.
53

3.5. Переведення чисел з формату з фіксованою комою до формату з рухомою комою і навпаки
3.5.1. Алгоритм переведення числа з формату з фіксованою комою до формату з рухомою комою
Такепереведенняможливетількиуразівиконання такоїумови:
nm nф ,
де nm – довжина розрядної сітки для мантиси числа у форматі з рухомою комою;
nф – довжина мантиси для числа уформаті з фіксованою комою. Умовно приймемо, що довжина розрядної сітки, яка виділена для
зображеннямантисичислаякзрухомою, такізфіксованоюкомою,однакова і, наприклад, дорівнює8, тобто nф nm 8 . Дляподанняхарактеристики числаз рухомоюкомою,наприклад,надається6розрядів.Тоді l 3210 ( l –
розмірністьчисла, якаможе бутиподана умантисі).
Напочаткупроцедурипереведеннямодульчисла A ф ,якийподаний упрямомукодібеззнаковогорозряду, переписуєтьсяуполе мантиси A рк. ,
причомутак, щобнезалежновіддовжини мантисизображеннямодулячислаA ф розмістилося унаймолодших розрядах поля мантиси . У такомуразі початковухарактеристикуприймаютьтакою:
r l nm 3210 810 4010 .
Це пояснюється тим, що при переведенні з формату з фіксованою комою до формату з рухомою комою (тільки при такому переведенні!)
показникстепеня порядку p можебути тільки nф .
Підчаспереведення перевіряютьстаршийрозрядмантиси. Якщовін обнулений, товиконується зсув зображеннямантиси влівона один розряд і віднімається 1 від значення r . Така процедура повторюється доти, доки у старшому розряді мантиси не з’явиться 1 або доки значення r не дорівнюватиме l . Утакомуразі процедурапереведеннязакінчується.
Наприклад, увипадкупереведення 1 ф у 1 рк. отримуємо r 3310 , зображення мантиси буде 0,12 . Якщопочаткове числобуловід’ємним, тоу розряд, що відведений під знак мантиси, записується 1. У протилежному
54
випадку – 0. Наприклад, переведемо число 510 з формату з фіксованою комою у формат з рухомою комою, 510 000001012 nm 8 , nф 8 ,
l 8 10002 , r l nm 10002 10002 .
Послідовністьвиконанняпроцедуринормалізаціїнаведенаутабл.3.3:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 3.3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Ст.роз. |
|
Мантиса |
|
Мол.роз. |
r2 = l2 + (nm - 1)2 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
|
0 |
0 |
|
1 |
|
0 |
|
1 |
r = 1000 + 1000 |
|
|
0 |
0 |
|
0 |
|
0 |
1 |
|
0 |
|
1 |
|
0 |
r = 1000 + 0111 |
|
|
0 |
0 |
|
0 |
|
1 |
0 |
|
1 |
|
0 |
|
0 |
r = 1000 + 0110 |
|
|
0 |
0 |
|
1 |
|
0 |
1 |
|
0 |
|
0 |
|
0 |
r = 1000 + 0101 |
|
|
0 |
1 |
|
0 |
|
1 |
0 |
|
0 |
|
0 |
|
0 |
r = 1000 + 0100 |
|
|
1 |
0 |
|
1 |
|
0 |
0 |
|
0 |
|
0 |
|
0 |
r = 1000 + 0011 |
|
У результаті отримали число, |
мантиса якого дорівнює 0,1012 з |
||||||||||||||
характеристикою |
r 10112 |
1110 , |
тобто показник степеня порядку |
дорівнює 00112 310 .
Якщо початкове число є правильним дробом, то дріб записують у старші розряди мантиси і як початкову характеристику приймають r l . Даліпереведення виконується аналогічнодоописаноговище.
Наприклад, переведемо 0,2510 0,012 за таких самих умов, як і у першомуприкладі:
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.4. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С.р. |
|
|
Мантисса |
|
|
М.р. |
r2 = l2 - 1 |
|||||
0 |
1 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
r = 1000 |
|
1 |
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
r = 1000 - 1 = 0111 |
|
Одержуємочисло 0,12 , r 01112 710 ,апоказник степеняпорядку дорівнює-1.
3.5.2. Принцип переведення числа з формату з рухомою комою у формат з фіксованою комою
Розглянемо той самий випадок, коли nф nm , а A ф – ціле число.
Якщо r l nф , тозображення мантисизсуваєтьсявправона одинрозряд
55

з додаванням одиниці до значення r під час кожного кроку. Зсуви припиняються,яктількисправдитьсярівність
r l nф.
Отже, якщо початково r l nф , то зсуви не потрібні. Якщо ж
r l nф , то перетворення неможливе, |
тому що буде принципово |
|||||||||||||||
помилковим. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Отриманепіслянеобхідних зсувів(абобезних)зображеннямантиси |
||||||||||||||||
переписуєтьсяурозряднусітку, відведенупідмодульчисла A ф .Якщознак |
||||||||||||||||
мантиси був від’ємним: |
Sm 1 , |
то подання A ф переводиться у |
||||||||||||||
доповняльнийкод. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Наприклад,денормалізуємчисло 0,1012 зхарактеристикою r 10112 : |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 3.5. |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С.р. |
|
|
Мантиса |
|
|
М.р. |
|
r2 = l2 + (p + 1)2 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
0 |
1 |
|
0 |
|
0 |
0 |
|
0 |
0 |
|
r = 1000 + 0011 |
|
|
|
0 |
|
1 |
0 |
|
1 |
|
0 |
0 |
|
0 |
0 |
|
r = 1000 + 0100 |
|
|
|
0 |
|
0 |
1 |
|
0 |
|
1 |
0 |
|
0 |
0 |
|
r = 1000 + 0101 |
|
|
|
0 |
|
0 |
0 |
|
1 |
|
0 |
1 |
|
0 |
0 |
|
r = 1000 + 0110 |
|
|
|
0 |
|
1 |
0 |
|
0 |
|
1 |
0 |
|
1 |
0 |
|
r = 1000 + 0111 |
|
|
|
0 |
|
0 |
0 |
|
0 |
|
0 |
1 |
|
0 |
1 |
|
r = 1000 + 1000 |
|
|
Отримуємо 510 .
Загалом, якщо nm nф , обов’язково повинна виконуватися така умова:
r l nф .
Якщо ця умова не виконується, то у результаті денормалізації отримуємо число, за значенням менше від початкового, тобто результат переведення буде помилковим.
Якщо A ф правильний дріб і r l , ми також починаємо зсувати число вправо, додаючи до значення r одиницю під час кожного кроку зсувудоти, докиr дорівнюватиме l .
56
Потім, починаючи із старшого розряду мантиси, виділяємо стільки розрядів, скільки їх відведено для подання числа у форматі з фіксованою комою,ізчитуємоїхурозряднусітку, відведенудляподаннячисла уформаті з фіксованою комою.
Наприклад,денормалізуємочисло 0,12 з характеристикою 01112 :
|
|
|
|
|
|
|
|
|
|
|
Таблиця 3.6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С.р. |
|
|
Мантиса |
|
|
М.р. |
r2 = l2 + 1 |
|
||||
1 |
|
0 |
0 |
|
0 |
0 |
0 |
0 |
|
0 |
r = 0111 |
|
0 |
|
1 |
0 |
|
0 |
0 |
0 |
0 |
|
0 |
r = 0111 + 1 = 1000 |
|
Отримуємо мантису 0,012 і переписуємо це число урозряднусітку, відведенудля поданнячиселуформаті зфіксованоюкомою. Коли nm nф, і якщоневиконується така умова:
l r nф ,
тоурезультаті денормалізаціїодержимо0.
3.6. Похибки подання чисел
Як вже зазначалося, поданнячислової інформації укомп’ютерах, як правило, спричиняє появу похибок, значення яких залежить як від форми поданнячисел, так івіддовжинирозрядної сіткикомп’ютера.
Абсолютнапохибкаподання–церізницяміжсправжнімзначенням вхідноївеличини A таїїзначенням,отриманнимзмашинногозображення
Aм ,тобто
A A Aм .
Тодівідноснапохибкаподаннядорівнює:
A A Aм .
Частодеякавеличинауоднійсистемічисленнямаєскінченезначення, ауіншійсистемічисленнястаєнескінченноювеличиною. Наприклад, дріб 0,110 має скінчене десяткове подання, але якщо перевести її у двійкову системучислення, буде нескінченим дробом 0,0001100110011...2 .
57

Отже, під час переведення чисел з однієї системи числення у іншу неминуче виникають похибки, оцінити які неважко, якщо відомі істинні значеннявхіднихчисел.
Відповіднодо(3.1)числазображаютьукомп’ютері увигляді
Ad A K A ,
де значення коефіцієнта K A вибирають таким, щоб абсолютне значення машинногозображення числа A усистемічислення з основою d 2 було завждименшим від1.
1 2 n n 1
Ad K A a 1d a 2d ... a nd a n 1 d ... .
Оскільки довжина розрядної сітки процесора комп’ютера дорівнює n двійковихрозрядівпіслякоми,абсолютнапохибка переведеннядесяткових даних усистемучислення з основою d 2 становитиме:
A a n 1 d n 1 a n 2 d n 2 ... |
i |
aid i . |
|
|
i n 1 |
Якщо d 2 і ai 1,томаксимальнезначенняцієїпохибкибудетаким:
A max |
i |
1 2i |
2 n |
i |
2i 2 n . |
|
|
||||
|
i (n 1) |
|
|
i 1 |
|
Зостанньоговиразувипливає, щомаксимальнапохибкапереведення десяткових даних у двійкову систему числення не буде перевищувати одиниці молодшого розряду розрядної сітки процесора. Мінімальна похибкапереведення дорівнює нулеві.
Усереднена абсолютна похибка переведення чисел до двійкової системичислення будедорівнювати:
A c 0,5 2 n дляподання чисел, щоєправильними дробамиі
A c 0,5 20 дляподанняцілихчисел.
Для подання чисел уформі з фіксованої комою абсолютне значення машинногозображеннячисла лежитьумежах:
58
2 n A ф 1 2 n длядробіві
20 A ф 2n 1 дляцілихчисел
Відповідно,відносніпохибкиподаннядлямінімальногозначеннячисла дорівнюють:
A |
|
A |
|
0,5 2 n |
длядробів. |
A ф max |
|
||||
фmin |
|
|
1 2 n |
|
Як правило у процесорах комп’ютерів n 16 64 , тому 1 2 n ,
звідки:
|
|
|
|
|
| A | |
Фmin |
0,5*2 n |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
і A |
|
|
|
A |
|
|
|
|
0,5 20 |
|
0,5 дляцілихчисел. |
|||||
|
|
A ф max |
|
|
|
|||||||||||
фmin |
|
|
|
|
|
|
2 n 1 |
|||||||||
Аналогічно, длямаксимальногозначення: |
||||||||||||||||
A |
|
|
|
|
A |
|
|
0,5 2 n |
|
|
0,5 2 1 длядробів |
|||||
фmax |
|
|
A ф min |
|
|
|
|
|
2 n |
|
|
|||||
і A |
|
|
A |
|
|
|
0,5 20 |
|
0,5 дляцілихчисел. |
|||||||
|
A ф min |
|
|
|||||||||||||
фmax |
|
|
|
20 |
|
|
|
Якбачимо, похибкиподаннямалихчиселуформіз фіксованоюкомою можуть бути дуже значними.
Для подання чисел у формі з рухомою комою абсолютне значення мантисилежитьумежах:
2 1 |
m |
|
1 2 n . |
|
|
A n |
|
59