Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_Практика_Основи-програм-інженерії_(1+3кур...doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
7 Mб
Скачать

3.1.4 Внутрішнє представлення дійсних чисел

Основний тип даних, з якими працює співпроцесор, – дійсний. Дані цього типу описуються трьома форматами: коротким, довгим і розширеним.

Для представлення дійсного числа використовується формула (19.1):

А = (±М)*Np, (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.

Сформований результат у вигляді дійсного числа в розширеному форматі складається з трьох компонент:

  1. знака – 0;

  2. характеристики – 100000000000100;

  3. мантиси – 1011 0110 0011 1101 0111 0000 1010 00111101 0111 0000 1010 1110 0001 0111 0001

3.2 Завдання до виконання практичної роботи

 

1. Отримати числа у викладача та їх із десяткової системи числення в двійкову, вісімкову та шістнадцяткову системи числення.

3.3 Контрольні питання

  1. Які існують формати представлення чисел?

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

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

  4. Що таке нормалізоване число?

  5. Абсолютна похибка представлення числа.

  6. Відносна похибка представлення числа.

  7. Внутріщнє представлення дійсних чисел.

ПРАКТИЧНА РОБОТА № 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 буде наявність одиниці перенесення із старшого розряду цифрової частини суматора.

Отже, для додавання чисел з фіксованою комою в прямому коді вірними є такіправила: