Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
p_k_1.doc
Скачиваний:
8
Добавлен:
14.07.2019
Размер:
346.62 Кб
Скачать
  1. Форми подання чисел

Довільне число можемо записати в різних формах наприклад: число 0,028 можемо подати у вигляді 2810-3, або 0,03 (заокруглене), або 2,810-2 та інше. Наявність багатьох форм подання одного і того ж числа може бути при­чиною ускладнень роботи цифрового пристрою. Для уникнення таких трудно­щів необхідно або створювати спеціальні алгоритми розпізнавання чисел, або кожен раз вказувати формат запису числа.

В електронно-обчислювальних пристроях використовують дві основні форми подання числа:

  • з фіксованою комою перед старшим розрядом (для правильного дро­бу) або після молодшого (для цілого числа);

  • з плаваючою комою, місце положення якої задається порядком числа.

Місце коми в обох форматах розуміється неявно, без використання до­даткових розрядів. Необхідно відмітити що нумерація розрядів у великих ма­ши­нах проводиться зліва направо, а в міні- і мікрокомп’ютерах та мікропро­це­сорах – справа наліво.

Розрядною сіткою називають сукупність запам’ятовуючих елементів які використовують для розміщення одного двійкового числа. Для різних класів комп’ютерів довжина розрядної сітки складає 8, 16, 32, 64 та більше розрядів. Форматом будемо називати спосіб розміщення компонентів числа у розрядній сітці, тобто послідовність і позиції знака, мантиси, порядку та ін.

2.1. Подання чисел з фіксованою комою

При подані чисел з фіксованою комою положення коми закріплюється у певному місці відносно розрядів числа і зберігають незмінним для всіх чисел, які зображають у певній розрядній сітці. Як правило кому фіксують перед пер­шим («старшим») розрядом і в розрядній сітці можливо подати числа які за мо­дулем менші одиниці. Для запису знаку двійкового числа використовують стар­ший знаковий розряд (0 відповідає знаку +, 1 – знаку «мінус»).Підчас виконан­ня арифметичних дій над правильними дробами можемо отримати двійкові чис­ла, які за абсолютною величиною більші або рівні 1, що називається перепов­не­н­ням розрядної сітки, і старші розряди числа втрачаються. Для виключення випадків переповнення вводять масштаб величини. Числа, які за абсолютною величиною менші ніж одиниця молодшого розряду, також втрачаються і нази­ваються машинним нулем.

Щоб спростити функціонування цифрового пристрою необхідно обме­жити вхідну інформацію певною областю чисел. Наприклад на вхід пристрою надходять тільки правильні дроби, то абсолютне значення числа А змінюється в межах

Аmin  | A |  Аmax; Аmin = 1; Аmax = 2k – 1, (15)

де k – кількість розрядів цифрової частини числа.

Інтервал числової осі, розміщений симетрично між максимальним та мінімальним значенням числа буде6мо називати діапазон подання. Звідки діа­пазон подання цілих чисел з урахуванням симетрії відносно нуля числової осі запишемо

DА = 2Аmax = 2(2k – 1)  2k+1. (16)

Приклад: Розрахувати максимальне значення і діапазон подання цілого числа із знаком у 32-розрядній сітці. На основі попередніх виразів для k – 31 от­римуємо:

Аmax = 231 – 1 = 2147483647; D = 2Аmax = 4294967294.

Якщо на вхід обчислюю чого пристрою подаються тільки правильні дро­би то

Аmin  | A |  Аmax; Аmin = 2-k; Аmax = 1 - 2k. (17)

Звідки правильний дріб, за модулем менших за 2-k, сприймається як ма­шинний нуль; числа більші за одиницю, викликають переповнення розрядної сітки. Діапазон подання правильного дробу

DА = 2Аmax = 2(1 – 2-k)  2, (18)

оскільки 1  2-k.

Враховуючи, що в машинному подані кома ставиться перед старшим розрядом правильного дробу. Тобто, зберігається тільки дробова частина, в роз­ряд цілої частини ми можемо записати додаткову інформацію.

Оскільки числа бувають додатними і від’ємними, то формат машинного подання числа поділяється на знакову частину і поле числа. В знакову частину записується інформація про знак. Приймемо, що знак додатного числа + зоб­ра­жається символом 0, а знак від’ємного числа - подається символом 1.

0 ,

1

2

3

4

5

6

7

8

9

10

11

Номер розряду

Знакова частина

П о л е ч и с л а

1 ,

1

0

1

1

0

1

1

1

1

1

0

0 ,

0

0

0

0

1

1

0

0

0

1

1

0 1

Рис. 1. Подання чисел у формі з фіксованою комою

Приймемо, що цифровий пристрій оперує розрядною сіткою довжиною 12 двійкових розрядів (рис. 1), та враховуючи що на вході цифрового пристрою використовуються правильні дроби, число А можемо подати у вигляді

- 1  Аф  1, (19)

звідки

А = АфКА,

де Аф – машинне подання числа у формі з фіксованою комою, КА – масштабний коефіцієнт, що відповідає умові (19), та визначає той факт, що в машинному зображенні числа кома завжди ставиться після цілої частини дробу, тобто перед її старшим розрядом.

Приклад: Якщо на вхід цифрового пристрою з розрядною сіткою12 двій­кових розрядів (рис. 1). Необхідно визначити масштабний коефіцієнт для чисел А1 = -1011,01111102 та А2 = 0,1100011012.

Для виконання умови (19), необхідно число більше за абсолютним значе­н­ням записати у вигляді А1 = -0,1011011111024. Звідки А = -1,10110111110, що відповідає масштабному коефіцієнту КА1 = 24. Число А2 повинне розмісти­тись в заданій розрядній сітці зі збереженням відповідних розрядів, тобто КА1 = КА2 = 24. Звідки А2 = +0,000011000110124, або Аф2 = +0,00001100011 (рис. 1).

З прикладу видно, що подання чисел у формі з фіксованою комою може викликати похибку подання. Так для числа А2 абсолютна похибка подання оці­нюється величиною частини числа, що не помістилась в розрядну сітку, тобто величиною 0,000000000000124. Помилка подання залежить від правиль­ності ви­бору масштабних коефіцієнтів. Обчислення останніх повинне відбува­тися так, щоб виключити можливість появи в процесі функціонування циф­рового пристрою, чисел машинне зображення яких не задовольняє умові (19).

2.2. Подання чисел у формі з плаваючою комою

В нормальній формі

Ан = mApA, (20)

де mA – мантиса числа А; pA – порядок числа А.

Як видно з поданого вище матеріалу, що таке подання чисел не одноз­на­чне, тому для визначеності вводять деякі обмеження. Найбільш поширеним і зручним для подання чисел в цифрових пристроях є обмеження у вигляді

q-1  mA  1, (21)

де q – основа системи числення.

Нормалізована форма подання чисел – форма подання чисел для якої виконується умова (21).

Оскільки в даному випадку абсолютне значення мантиси лежить в ме­жах від q-1 до 1- q-n, де n – кількість розрядів для подання мантиси без знаку, положення розрядів числа в його машинному подання не фіксоване. Тому таку форму подання чисел називають також формою подання числа з плаваючою комою.

Приклад: Запис числа у формі з плаваючою комою:

А2 = 21101,1101 = 2210,11101 = 240,1011101.

Формат машинного зображення числа з плаваючою комою повинен міс­тити знакові частини і поля для мантиси та порядку (рис. 2, а). Виділяються спеціальні розряди для зображення знаку числа (мантиси) і знаку порядку або характеристики (рис. 2, а, б).

а)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Номер

розряду

Поле миси

Знак мантиси

Знак порядку

б)

Знак числа

в)

1,

1

0

1

1

0

1

1

1

1

0

0

0

1

0

1

г)

0,

1

1

0

0

0

0

1

1

1

1

0

0

0

1

1

Рис. 2. Подання числа у формі з плаваючою комою

Приклад: Нехай в розрядну сітку цифрового пристрою (рис. 2) необхід­но записати двійкові числа А1 = - 10110,11112 та А2 = + 0,000110101112. Перш за все необхідно подати дані в нормальній формі (рис. 2, в, г). Порядок числа вибираємо таким чином, щоб для них виконувалась умова (21), тобто А1 = - 0,101101111225 і А2 = + 0,1101011122-3. Оскільки система числення для задано­го цифрового пристрою є постійною, то немає необхідності вказувати її ос­нову, достатньо лише подати показник порядку.

Оскільки для подання порядку виділено п’ять цифрових розрядів і один розряд для знаку, їх машинне подання і машинне подання мантиси відповідно має вид:

рА1

=

0

00101

рА2

=

1

00011

mA1

=

1,

101101111

mA2

=

0,

11010111

    1. Подання від’ємних чисел

Один із способів виконання операції віднімання з допомогою двійкового суматора – заміна знаку числа яке віднімається і додавання його до числа яке зменшується:

А – В = А + (- В) (22)

Цим операцію арифметичного віднімання замінюють на алгебраїчне додавання, яка і є основною операцією двійкового суматора. Звідки виникає питання: як подавати від’ємні числа в цифрових пристроях?

Для подання від’ємних чисел в машинних кодах використовують коди прямий, доповнювальний та обернений. Для прикладу, розглянемо застосуван­ня даних кодів для чисел з фіксованою комою за модулем менших одиниці.

Прямий код числа А = - 0а1а2…аn - машинне подання даного числа має вид Ам пр = 1,а1а2…аn. З визначення видно, що в прямому коді всі циф­ро­ві роз­ряди від’ємного числа лишаються незмінними, а в знаковій частині за­писується одиниця.

Приклад: Якщо А = - 0,101110 то Ам пр = 1,101110. Для додатного числа подання в прямому коді залишається незмінним, якщо А = -0,101110 то Ам пр = 0,101110.

В прямому коді в розрядну сітку цифрового пристрою можемо записати наступне максимальне за абсолютним значенням число Апр max= 0,11…1= 1 – 2-n, де n – кількість розрядів розрядної сітки цифрового пристрою.

Діапазон зміни машинного відображення для прямого коду знаходиться в межах – -(1-2-n)  Апр  (1-2-n). В попередніх прикладах прямій код викорис­то­вувався для запису чисел в розрядну сітку цифрового пристрою.

Правило перетворення чисел в прямий код має вид:

Апр = (23)

Доповнювальний код числа А = 0а1а2…аn – таке машинне відображення даного числа Ад = 1, , для якого =0, якщо аі = 1, і = 0, якщо аі = 0, за виключенням останнього значущого розряду, для якого = 1 при аk = 1.

Приклад: Число А = - 0,101110 в доповнювальному коді запишеться так АД 1,010010.

Тобто доповнювальний код є математичним доповненням основи систе­ми числення

|А| + Ад = q, (24)

де |А| - абсолютне значення числа А.

Оскільки додатні числа не змінюють свого зображення в доповнюваль­ному коді, то правило перетворення в доповнювальний код можемо записати наступним чином:

Ад = (25)

Максимальне доповнювальне число, в цьому випадку, буде рівне (1-2-n).

Найбільше від’ємне число, яке можемо записати в доповнювальному ко­ді, визначимо наступним чином. Приймемо, що найбільше від’ємне число А1 = -0,11..11. Тоді зображення даного числа в доповнювальному коді = 1,00..01. Якщо до числа А1 добавити одиницю в самий молодший розряд, то в результаті то в результаті отримаємо число -1,00..0. Перетворивши дане число за форма­льними правилами, отримаємо Ад min = 1,00…0. Звідки діапазон зміни машин­но­го зображення чисел для форми подання з фіксованою комою перед старшим розрядом, в доповнювальному коді

- 1  Ад  (1-2-n).

Для великих ЕОМ машинне зображення чисел - завжди цілі числа. При цьому найбільше додатне число складається з цілої частини, де всі розряди рів­ні одиниці, і знакового розряду, рівного нулю (наприклад, у випадку 16 двій­ко­вих розрядів (два байти) максимальне додатне число рівне 0111111111111111, тобто рівне 215 – 1); найбільше від’ємне число складається з цілої частини, всі розряди якої рівні нулю, і знакового розряду, рівного одиниці, тобто приймає вид 1000000000000000. В даному випадку говоримо про форму подання чисел з фіксованою комою. Звідки, співвідношення (24) для подання цілих чисел в до­повнювальному коді приймає вигляд

|А| + Ад = qk-1, (26)

де k – кількість розрядів в цілій частині машинного подання числа (k = 0, ).

Вираз (24) – частковий випадок формули (26) при k = 0.

Обернений код числа А = +0,а1а2…аn – таке машинне подання даного числа Аоб = 1, а1а2…аn для якого аі = 0, якщо аі = 1, і аі = 1, якщо аі = 0. З даного визначення слідує, що обернений код двійкового числа є інверсним зображен­ням самого числа, в якому всі розряди вихідного числа приймають інверсне (обернене) значення, тобто всі нулі замінюються на одиницю, а всі одиниці – на нуль. Наприклад, якщо А = - 0,101110, то Аоб = 1,010001. Для оберненого коду чисел, поданих у формі з комою, фіксованою перед старшим розрядом, спра­ве­дливе співвідношення

|А| + Аоб = q – q-n, (27)

де |А| - абсолютна величина А; n – кількість розрядів після коми в зображенні числа.

Правила перетворення чисел в обернений код можемо сформулювати наступним чином:

Аоб = (28)

Порівнявши вирази (24) і (27), бачимо, що

Ад = Аоб + qn. (29)

Співвідношення (29) використовується для отримання доповнювального коду від’ємних чисел за наступним алгоритмом: спочатку інвертується вихідна частина вихідного числа, в результаті отримуємо обернений код; далі добавляє­ться одиниця в молодший розряд цифрової частини числа і тим самим отримує­мо доповнювальний код його зображення.

Приклад: Знайти обернений та доповнювальний код числа А = -0,1110002.

Використовуючи визначення оберненого коду, отримуємо Аоб = 1,000111. Для знаходження доповнювального коду числа добавимо одиницю в молодший розряд його зображення:

1,

0

0

0

1

1

1

+

1

Ад

=

1,

0

0

1

0

0

0

Тобто: Аоб = 1,000111; Ад = 1,001000.

В оберненому коді можемо подати максимальне додатне число Аоб max = 0,11…1 = 1 – 2 –n і найбільше від’ємне число Аоб max = - 0,11…1 = - (1–2 –n), запи­сане у вигляді 1,00…0.

При проектуванні цифрових пристроїв необхідно враховувати неодно­з­начне подання нуля в оберненому коді: +0 зображається 0,00…0, - 0 – 1,11…1.

Використання різних способів подання від’ємних чисел в цифрових при­строях обумовлює певний ряд особливостей виконання операцій алгебраїч­ного додавання двійкових чисел.

    1. Похибка подання чисел

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

Абсолютна похибка подання – різниця між істинним значенням вхідної величини А і значенням, отриманим з машинного подання Ам, тобто А=А– Ам.

Відносна похибка подання – величина. яка визначається виразом

А = ААм. (30)

Вхідні величини незалежно від кількості значущих цифр можуть містити неточності. Наприклад досить часто приймаю  = 3,14. Однак дана величина мо­же бути отримана з більш високою точністю (800 знаків та більше). Якщо прийняти що  = 3,14159265, то вданому випадку, абсолютна похибка буде ста­новити  = 0,00159265.

Часто деяка величина в одній системі числення має скінчене значення, а в іншій системі числення стає нескінченою величиною, наприклад дріб 13 має скінчене подання, але переведена в десяткову систему числення отримаємо 0,333… Або дріб 110 має скінчене десяткове значення, але переведене в двій­ко­ву систему числення, стає нескінченим дробом 0,0001100110011…

Тобто, при переведенні чисел з однієї системи числення в іншу немину­че виникає похибка, оцінити яку неважко, якщо відомі дійсні значення вхідних чисел.

Відповідно до виразу (19) число в цифровому пристрої зображається у вигляді Аq = АмКА, де масштабний коефіцієнт КА вибирають так, щоб абсолют­не значення машинного подання числа А в системі числення з основою q = 2 було завжди менше одиниці: Аq = КА-1q-1 + а-2q-2 +…+ а-nq-n +…].

Оскільки довжина розрядної сітки цифрового пристрою рівна n двійко­вих розрядів після коми, то абсолютна похибка переведення десяткової інфор­мації в систему з основою q буде визначатися

Ам = а-(n+1)q-(n+1) +…+ а-(n+s)q-(n+s) +… = . (31)

Якщо q = 2, то при аі = 1 максимальне значення похибки розраховується

Ам = . (32)

З виразу (32) бачимо, що максимальне значення похибки переведення з десяткової інформації в двійкову не буде перевищувати одиниці молодшого розряду розрядної сітки цифрового пристрою. Мінімальна похибка переведення рівна нулю.

Усереднена абсолютна похибка переведення чисел у двійкову систему числення Ам = (0 + 2-n)2 = 0,52-n.

Для подання чисел у формі з фіксованою комою абсолютне значення машинного подання числа

2-n  |Ам|  1 – 2-n. (33)

Звідки, відносна похибка для мінімального значення числа Аф min = АмАф max = 0,52-n(1 – 2-n).

Оскільки для сучасних ЕОМ n = 16  64, тому 1  2-n, звідки Аф min = 0,52-n.

Аналогічно для максимального значення:

Аф max = Аф max Аф min = 0,52-n 2-n. (34)

З виразу (34) видно, похибка подання малих чисел у формі з фіксованою комою може бути доволі значною.

Для подання чисел у формі з плаваючою комою абсолютне значення ман­тиси

2-1  |mАн|  1 – 2-n. (35)

Похибка (32) – похибка мантиси. Для знаходження похибки подання числа з плаваючою комою величину цієї похибки необхідно перемножити на величину порядку числа рА

 Ан max = 0,52-n рА 2-1рА = 2-n;

 Ан min = 0,52-n рА (1-2-nА, (36)

де n – кількість розрядів для подання мантиси числа.

З виразу (36) видно, що відносна точність подання числа не залежить від величини числа.

Завдання для самостійного виконання

  1. Перевести число 121 в двійкову систему числення.

  2. Перетворити двійкове число 1000101010,010101.

  3. Перетворити число 175,347 в двійкову систему числення з точністю 5%.

  4. Скільки потрібно двійкових розрядів для подання числа 1238.

  5. Записати десяткове число 781,362 у оберненому коді.

  6. Подати десяткове число 376/128 у доповнювальному коді.

  7. Перевести число 387 у тріскову систему числення.

Література

    1. Бойко В., Гуржій А., Жуйков В., та ін. Схемотехніка електронних си­с­тем. Цифрова схемотехніка. – Київ, «Вища школа», 2004.

    2. Бабич М., Жуков І. Комп’ютерна схемотехніка. Київ, «МК-Прес», 2004.

    3. Угрюмов Е. Цифровая схемотехника. Сакт-Питербург, 2004.

  1. Фрике К. Вводный курс цифровой электроники. Москва, 2004.

  2. Бойт К. Цифровая электроника. Москва, 2007.

  3. Андронік Буняк. Електроніка та мікросхемотехніка: навчальний посібник для вищих учбових закладів. - Київ - Тернопіль, 2001.

  4. Мальцев П.П. й др. Цифровые интегральные микросхемы.: Справочник. -М.: Радио й связь . 1994.

  5. Пухальский Г.И., Новосельцева В.Н. Проектирование дискретных уст­ройств на интегральных микросхемах: Справочник. - М.: Радио и связь, 1990.

  6. Титце У., Шенк К. Полупроводниковая схемотехника: Справочное ру­ководство. Пер. с нем. - М.: Мир, 1983..

  7. Скаржепа В.А., Луценко А.Н. Электроника й микросхемотехника.- К.: Выща школа, 1989.

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