рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Дійсні типи

Дійсні типи - раздел Образование, Числові типи P   На Відміну Від Порядкових Типів (Всі Цілі, Символьний, Логічн...

 

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

Представлення дійсних чисел в пам'яті. У деяких областях обчислень потрібні дуже великі або дуже малі дійсні числа. Для одержання більшої точності застосовують запис чисел із рухомою точкою. Формат із рухомою точкою – ефективний засіб представлення дуже великих і дуже малих дійсних чисел за умови, що вони містять обмежене число значущих цифр, і, отже, не всі дійсні числа можуть бути представлені в пам'яті. Звичайне число використовуваних при обчисленнях значущих цифр таке, що для більшості задач помилки округлення зневажливо малі.

Формат для представлення чисел із рухомою точкою містить одне чи два поля фіксованої довжини для знаків. Кількість позицій для значущих цифр по-різному в різних ЕОМ, але існує загальний формат, наведений на рис. 2.2, а. Відповідно до цього запису формат дійсного числа містить у загальному випадку поля мантиси, порядку і знаків мантиси і порядку. Однак, частіше замість порядку використовується характеристика, що виходить додатком до порядку такого зсуву, щоб характеристика була завжди позитивною. При цьому має місце формат представлення дійсних чисел такий, як на рис. 2.2, б.

 

 
 

 


Введення характеристики звільняє від необхідності виділяти один біт для знака порядку, спрощує виконання операцій порівняння (<, >, ≤, ≥) і арифметичних операцій над дійсними числами. Так, при додаванні або відніманні чисел із рухомою точкою, для того, щоб вирівняти операнди, потрібен зсув вліво чи вправо мантиси числа. Зсув можна здійснити за допомогою єдиного лічильника, у який спочатку заноситься позитивне число, що зменшується доти, поки не буде виконане необхідне число зсувів. Таким чином, для представлення дійсних чисел у пам'яті ЕОМ порядок p дійсного числа представляється у вигляді характеристики шляхом додавання зсуву (старшого біта порядку):

Х = 2n– 1 + k + p,

де n – число бітів, відведених для характеристики,

p – порядок числа,

k – поправочний коефіцієнт фірми ІBM, що дорівнює + 1 для real та

– 1 для всіх інших форматів.

Наступним компонентом числа із рухомою точкою, що представляється в машині, є мантиса. Для збільшення кількості значущих цифр у представленні числа і виключення переповнення при множенні, мантису піддають нормалізації. Нормалізація означає, що мантиса (назвемо її F), крім випадку, коли F=0, повинна знаходитися в інтервалі [R– 1 ... 1). Таким чином виконується умова: R– 1 ≤ F < 1,

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

Для двійкової системи обчислення R = 2. Тоді у зв'язку з тим, що

2– 1 ≤ F < 1,

ненульова мантиса будь-якого збереженого числа з рухомою точкою, повинна починатися з двійкової одиниці. У цьому і полягає одна з переваг двійкової форми представлення числа з рухомою точкою. Оскільки процес нормалізації створює дріб, перший біт якого дорівнює 1, у структурі деяких машин ця одиниця враховується, однак не записується в мантису. Цю одиницю часто називають схованою одиницею, а додатковий біт, що має місце, використовують для збільшення точності представлення чисел чи їхнього діапазону.

Наведений метод нормалізації є класичним методом, при якому результат нормалізації представляється у вигляді правильного дробу, тобто з одиницею після точки і нулем у цілій частині числа. Але нормалізацію мантиси можна виконати по-різному. В ІBM PC нормалізована мантиса містить свій старший біт ліворуч від точки. Іншими словами нормалізована мантиса в ІBM PC належить інтервалу 1 ≤ F < 2. У пам'яті машини для даних, що потребують 4, 6, 8 байтів, цей біт не зберігається, тобто є "схованим" і використовується для збільшення порядку, наприклад, у форматах sіngle, double, та для збереження знака у форматі real. Для позитивних і негативних чисел нормалізована мантиса в пам'яті представлена в прямому коді.

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

Алгоритм формування машинного представлення дійсного числа в пам'яті ЕОМ:

1). Число представляється в двійковому коді.

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

3). Визначається характеристика.

При цьому необхідно відзначити наступне (див. табл. 2.5):

– для чисел типу real характеристика зберігається в молодшому байті пам'яті, для чисел типу sіngle, double, extended (PASCAL) і для всіх типів мови С – у старших байтах;

– знак числа знаходиться завжди в старшому біті старшого байта;

– мантиса завжди зберігається в прямому коді;

– ціла частина мантиси (для нормалізованого числа завжди дорівнює 1) для чисел типу real, sіngle, double не зберігається (є схованою). У числах типу extended (PASCAL) і long double (С) всі розряди мантиси зберігаються в пам'яті ЕОМ.

 

Таблиця 2.4

Характеристика дійсних типів

Розмір, (байт) Діапазон значень Тип Точність, (розрядів)
PASCAL C
2.9*10– 39…1.7*1038 1.4*10– 45…3.4*1038 4.9*10– 324…1.8*10308 3.1*10– 4944…1.2*104932 real single double extended float double long double 11– 12 7– 8 15– 16 19– 20

 

Таблиця 2.5

Розподіл розрядів для дійсних типів

Тип PASCAL / C Размір Схована одиниця Поправоч-ний коеф.
Загальний, байт Хар-ка, бiт Мантиса, бiт
real/ – single / float double / double extended/long double є є є немає + 1 – 1 – 1 – 1

 

ДАНІ ДIЙСНОГО ТИПУ, 6 БАЙТIВ. Формат машинного представлення: наступний:

мол. байт ст. байт

а: 7...0 15 ... 8 23 ... 16 31 ... 24 39 ... 32 47 46 ... 40

x ... x м ... м м ... м м ... м м ... м s м ... м

б: 7 0 – 32 – 39 – 24 – 31 – 16 – 23 – 8 – 15 – 1 – 7

де: а – номера розрядів пам'яті, s – знаковий розряд числа,

б – показники ступенів розрядів характеристики і мантиси,

м – нормалізована мантиса, х – характеристика числа.

Наприклад:

1). Десяткове число 15.375;

у двійковій системі обчислення 1111.011; результат нормалізації 1.111011*23; р = 3; s = 0; х = 27 + 1 + 3 = 27 + 22 = 132;

машинне представлення числа:

10000100 00000000 00000000 00000000 00000000 01110110

2). Десяткове число – 0.5; аналогічні викладення дають:

машинне представлення числа:

10000000 00000000 00000000 00000000 00000000 10000000

3). Числа верхньої та нижньої границь позитивного діапазону

~1.7*1038 – 11111111 11111111 11111111 11111111 11111111 01111111

~2.9*10– 35 – 00000001 00000000 00000000 00000000 00000000 00000000

ДАНІ ДIЙСНОГО ТИПУ, 4 БАЙТИ. Формат машинного представлення:

мол. байт ст. байт

7 ... 0 15 ... 8 23 22 ... 16 31 30 ... 24 – номера розрядів пам'яті

м ... м м ... м х м ... м s х ... х

– 16 – 23 – 8 – 15 0 – 1 – 7 7 1 – показники ступенів розрядів мантиси і характеристики

де: s – знаковий розряд, х – характеристика числа,

м – нормалізована мантиса.

Наприклад:

1). Число – 15.375; машинне представлення числа у форматі SІNGLE: 00000000 00000000 01110110 11000001

2). Значення верхньої та нижньої границь чисел негативного діапазону

~– 3.4*1038 – 11111111 11111111 01111111 11111111

~– .4*10– 45 – 00000001 00000000 00000000 10000000

Представлення дійсних чисел, що вимагають 8 байтів, аналогічне і тут не наводиться.

ДАНІ ДIЙСНОГО ТИПУ, 10 БАЙТІВ.Формат машинного представлення:

мол. байт ст. байт

7 ... 0 15 ... 8 23 ... 16 31 ... 24 39... 32 47 ... 40 55...48 63...56 71...64 79 ... 72

м ... м м ... м м ... м м ... м м ... м м ... м м... м м ... м х... х s х ... х

– 56 – 63 – 48 – 55 – 40 –47 – 32 – 39 – 24 – 31 – 16 – 23 – 8 – 15 0 – 7 7 0 14 8

де: верхній рядок цифр – номера розрядів пам'яті;

нижній рядок цифр – показники ступенів розрядів мантиси і характеристики;

s – знаковий розряд числа; м – нормалізована мантиса;

х – характеристика числа.

Наприклад:

1). Число – 15.375;

у двійковій системі числення – 1111.011;

після нормалізації – 1.111011*23; р = 3.

Машинне представлення даного числа у форматі EXTENDED:

0..0 0..0 0..0 0..0 0..0 0..0 0..0 11110110 00000010 11000000

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

~1.2*104932 – ******** ******** 11111111 11111111 11111111

11111111 11111111 11111111 11111111 011111111

~3.1*10– 4944 – ******** ******** 00000001 00000000 000000000

00000000 00000000 00000000 00000001 000000000

– Конец работы –

Эта тема принадлежит разделу:

Числові типи P

ПРОСТІ СТРУКТУРИ ДАНИХ R... Числові типи P Цілі типи P...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Дійсні типи

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Цілі типи
  За допомогою цілих чисел може бути представлена кількість об'єктів, що є дискретною за своєю природою (тобто рахункове число об'єктів). Розрізняють знакові та беззнакові цілі числа.

Десяткові типи
  Десяткові типи не підтримуються мовою PASCAL, але маються в деяких інших мовах, наприклад, COBOL, PL/1. Ці типи застосовуються для представлення таких даних, що у першу чергу повинн

Операції над числовими типами
  Над числовими типами, як і над всіма іншими, можливі насамперед чотири основних операції: створення, видалення, вибір, відновлення. Специфічні операції над числовими типами – добре

Бітові типи
У ряді задач може знадобитися робота з окремими двійковими розрядами даних. Найчастіше такі задачі виникають у системному програмуванні, коли, наприклад, окремий розряд пов'язаний зі станом окремог

Логічний тип
  Значеннями логічного типу boolean у PASCAL та bool у С++ може бути одна з попередньо оголошених констант false (неправда) або

Символьний тип
  Значенням символьного типу char є символи з деякої визначеної множини. У більшості сучасних персональних ЕОМ цією множиною є ASCІІ-код (Amerіcan Standard Code for І

Перераховний тип
  ЛОГІЧНА СТРУКТУРА. Перераховний тип представляє собою впорядкований тип даних, визначуваний програмістом, тобто програміст перераховує всі значення, що може при

Iнтервальний тип
  ЛОГІЧНА СТРУКТУРА. Один із способів утворення нових типів із вже існуючих – обмеження припустимого діапазону значень деякого стандартного скалярного типу або гр

Покажчики
  Тип покажчика представляє собою адресу комірки пам'яті (у переважній більшості сучасних обчислювальних систем розмір комірки, мінімальної адресованої одиниці пам'яті, складає один б

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги