- •050101 «Комп’ютерні науки» та «Програмна інженерія»
- •1.1.2 Правила переведення чисел із однієї позиційної системи числення в іншу
- •1.1.2.1 Переведення числа із десяткової системи в будь-яку іншу позиційну систему числення
- •1.1.2.2 Переведення чисел із двійкової (вісімкової, шістнадцятирічної) системи в двійкову систему числення та навпаки
- •1.1.2.3 Пеpеведення чисел із двійкової, вісімкової та шістнадцятирічної системи числення в десяткову систему числення
- •1.2 Завдання до виконання практичної роботи №1
- •1.3 Контрольні питання
- •2.1.2 Віднімання
- •2.1.3 Множення
- •2.1.4 Ділення
- •2.2 Завдання до виконання практичної роботи
- •3.1.1.1 Представлення чисел з фіксованою комою
- •3.1.1.2 Представлення чисел у формі з плаваючою комою
- •3.1.2 Похибки представлення чисел
- •3.1.2.1 Абсолютна похибка представлення чисел
- •3.1.2.2 Відносна похибка представлення числа
- •3.1.3 Представлення цілих чисел у прямому, оберненому та доповню вальному кодах
- •3.1.4 Внутрішнє представлення дійсних чисел
- •4.1.1.2 Додаванння чисел з фіксованою комою у додатковому коді
- •4.1.1.3 Додаванння чисел з фіксованою комою у оберненому коді
- •4.1.2 Переповнення розрядної сітки
- •4.1.3 Додавання чисел при різних значеннях порядків
- •5.1.1.1 Множення чисел з фіксованою комою у прямому коді
- •5.1.1.2 Множення чисел з плаваючою комою
- •5.1.2 Множення чисел у додатковому коді
- •5.1.2.1 Множення чисел з в доповнювальному коді при позитивному множнику
- •5.1.2.1 Множення чисел з в доповнювальному коді при від’ємному множнику
- •Практична робота № 6 Тема: Ділення чисел
- •6.1.1 Ділення чисел з фіксованою крапкою
- •6.1.1.1 Ділення чисел із відновленням залишку
- •6.1.1.1 Ділення чисел без відновленням залишку
- •6.1.2 Ділення чисел з плаваючою крапкою
- •Список літератури
- •Додаток а – Оформлення титульної сторінки
- •Додаток б – Варіанти завдань до практичної роботи №1,2
- •Додаток в – Зразок додавання цілих чисел в оберненому і додатковому кодах
- •Додаток г – Зразок додавання дробових чисел в оберненому і додатковому кодах
- •Додаток д – Зразок множення чисел з фіксованою крапкою у доповнювальному коді
- •Додаток е – Зразок множення чисел з плаваючою крапкою у доповнювальному коді
- •Додаток ж – Зразок ділення чисел з фіксованою крапкою у доповнювальному коді
3.1.4 Внутрішнє представлення дійсних чисел
Основний тип даних, з якими працює співпроцесор, – дійсний. Дані цього типу описуються трьома форматами: коротким, довгим і розширеним.
Для представлення дійсного числа використовується формула (19.1):
А = (±М)*Np, (19.1)
де М – мантиса числа А. Мантиса повинна задовольняти умові |М|<1;
N – основа системи числення, представленне цілим позитивним числом;
р – порядок числа, що показує истинне положення точки в розрядах мантиси (тому дійсні числа мають ще назву чисел з плаваючою комою, оскільки її положення в розрядах мантиси залежить від значення порядку).
Для зручності обробки в комп’ютері чисел з плаваючою крапкою, архітектурою комп’ютера на компоненти формули (19.1) накладаються деякі обмеження. Для співпроцесорів, що застосовуються в архітектурі Intel, ці умови і обмеження полягають в наступному: основа системи числення N=2; мантиса М повинна бути представлена в нормалізованому вигляді. Нормалізація може відрізнятися для різних типів процесорів.
У співпроцесорі Intel на апаратному рівні прийнята домовленість, що порядок р визначається у форматі дійсного числа особливим значенням, який називається характеристикою. Величина пов’язана з порядком р за допомогою формули (19.3) і є деякою константою. Умовно назвемо її фіксованим зсувом.
p=q+фіксований зсув (19.3)
Для кожного з трьох можливих форматів дійсних чисел зсув має різне, але фіксоване для конкретного формату значення, яке залежить від кількості розрядів, що відводяться під характеристику (табл. 19.2).
Таблиця 19.2. Формат дійсних чисел
Формат |
Короткий |
Довгий |
Розширений |
Довжіна числа |
32 |
64 |
80 |
Розмірність мантиси М |
23 |
52 |
64 |
Діапазон значень |
10-38…10+38 |
10-308…10+308 |
10-4932…10+4932 |
Розмірність характеристики q |
8 |
11 |
15 |
Значення фіксованого зсуву |
+ 127 |
+ 1023 |
+16383 |
Діапазон характеристик |
0...255 |
0...2047 |
0...32767 |
Діапазон порядків р |
-126...+127 |
-1022...+1023 |
-16382...+16383 |
У табл. 19.2 показані діапазони значень характеристик і відповідних їм дійсних порядків р дійсних чисел. Відзначимо, що нульовому порядку дійсного числа в короткому форматі відповідає значення характеристики рівне 127, якому в двійковому представленні відповідає значення 0111 1111. Від’ємному порядку р, наприклад -1, буде відповідати характеристика k= -1+127=126. У двійковому вигляді їй відповідає значення 01 11 11 10. Позитивному порядку р, наприклад +1, буде відповідати характеристика 1+127=128, в двійковому вигляді їй відповідаєт значення 1000 0000. Тобто, всі позитивні порядки мають в двійковому представленні характеристики, де старший біт рівним одиниці, а від’ємні порядки – ні.
Оскільки нормалізоване дійсне число завжди має цілу одиничну частину (виключаючи представлення перерахованих вище спеціальних чисельних значень), то при його представленні в пам’яті з’являється можливість вважати перший розряд дійсного числа одиничним за замовчуванням і враховувати його наявність тільки на апаратному рівні. Це дає можливість збільшити діапазон уявних чисел, оскільки з’являється зайвий розряд, який можна використовувати для представлення мантиси числа. Але це справедливо тільки для короткого і довгого форматів дійсних чисел. Розширений формат, як внутрішній формат представлення числа будь-якого типу в співпроцесорі, містить цілу одиничну частину дійсного в явному вигляді.
Приклад. Визначити дійсне число 45,56 в короткому форматі.
У пам’яті це число виглядатиме так:
71 3d 36 42
Враховуючи, що в архітектурі Іntel прийнятий перевірений порядок проходження байта в пам’яті у відповідності з принципом “молодший байт за молодшою адресою”, дійсне представлення числа 45,56 буде наступним:
42 36 3d 71
У двійковому представленні в пам’яті дійсного числа у директиві DD – це матиме вигляд:
Знак
+
0100 0010 0011 0110 0011 1101 0111 0001
харак-ка 45 .56
q=132
Де видно, що старша одиниця мантиси, при представленні в пам’яті, відсутня.
Приклад. Визначити дійсне число 45,56 в довгому форматі.
У пам’яті це число виглядатиме так:
47 Е1 7а 14 Ае С7 46 40
Перевернувши його, отримаємо істинне значення:
40 46 С7 Ае 14 7а Е1 47
Приклад. Визначити дійсне число 45,56 в розширеному формати.
У пам’яті це число виглядатиме так:
71 3d 0a d7 a3 70 3d b6 04 40
Перевернувши його, отримаємо істинне значення в пам’яті:
40 04 b6 3d 70 a3 d7 0a 3d 71
Розширений формат даного дійсного числа у двійковому представленні в директиві dt буде мати вигляд:
Знак мантиси
+
010000000000010010110110001111010111000010100011110101110000 10101110000101110001
хар-ка 45 .56
q=16388
Для більшої наочності розіб’ємо дане число на тетради:
0100 0000 0000 0100 1011 0110 0011 1101 0111 0000 1010 0011 1101 0111 0000 1010 1110 0001 0111 0001
Дане число має такі призначення бітів:
0 – знак «+»;
100 0000 0000 0100 – характеристика =1,6388;
1011 01 – ціла частина числа (45);
10 0011 1101 0111 0000 1010 0011 1101 0111 0000 1010 1110 0001 0111 0001 – дробова частина числа (0,56).
Як видно, в мантисі явно присутня старша одиниця, чого не було в короткому і довгому форматах представлення дійсного числа.
Розглянемо більш детально як із дробового десяткового числа отримується його розширене дійсне представлення:
1.Переведемо десятковий дріб 45,56 у двійкове представлення. У результаті отримаємо еквівалентне двійкове представлення:
45,56 =101101.1000111101011100001010001111010111000010101110000101110001
2.Нормалізуємо число. Для цього переносимо крапку вліво, до тих пір, доки в цілій частині числа не залишиться одна двійкова одиниця. Число перенесень вліво (або управо, якщо десяткове число було менше одиниці) буде порядком числа. Але в поле характеристики заноситься зміщене значення порядку (табл. 19.2). Таким чином, після переміщення крапки отримаємо значення порядку рівне 5. Відповідно, характеристика виглядатиме так: 5+16383=1638810=1000000000001002.
Сформований результат у вигляді дійсного числа в розширеному форматі складається з трьох компонент:
знака – 0;
характеристики – 100000000000100;
мантиси – 1011 0110 0011 1101 0111 0000 1010 00111101 0111 0000 1010 1110 0001 0111 0001
3.2 Завдання до виконання практичної роботи
1. Отримати числа у викладача та їх із десяткової системи числення в двійкову, вісімкову та шістнадцяткову системи числення.
3.3 Контрольні питання
Які існують формати представлення чисел?
Особливості представлення чисел у формі з фіксованою крапкою.
Особливості представлення чисел у формі з плаваючою крапкою.
Що таке нормалізоване число?
Абсолютна похибка представлення числа.
Відносна похибка представлення числа.
Внутріщнє представлення дійсних чисел.
ПРАКТИЧНА РОБОТА № 4
Додавання чисел з фіксованою та плаваючою комою
Мета роботи: навчитися додавати числа з фіксованою та плаваючою комою у прямому, оберненому та доповню вальному кодах.
4.1 Теоретичні відомості
4.1.1 Додавання чисел з фіксованою комою
4.1.1.1 Додаванння чисел з фіксованою комою у прямому коді
У прямому коді можна додавати лише числа, що мають однакові знаки, а результат додавання < 1.
Наприклад. Додати А=0,1011; В = 0,0100. Тут SqA = 0 ; SqB = 0
Додати A = –0,0101; B = –0,1001. Тут SqA = 1 ; SqB = 1
При додаванні чисел в прямому коді можливі випадки, коли абсолютне значення суми операндів перевищує одиницю, тобто має місце переповнення розрядної сітки автомата.
Ознакою переповнення = 1 буде наявність одиниці перенесення із старшого розряду цифрової частини суматора.
Отже, для додавання чисел з фіксованою комою в прямому коді вірними є такіправила: