Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСАК МІЙ()()().doc
Скачиваний:
7
Добавлен:
09.12.2018
Размер:
250 Кб
Скачать
☆
        1. Теоретична частина

1.1 Базові типи даних

1.1.1 Логічний тип даних

В мові C++ логічний тип (bool) характеризується двома значеннями: false (0) і true (1). В пам'яті комп'ютера змінна типу bool займає 1 байт. Логічні значення можна асоціювати зі значеннями типу int: значенню false відповідає нуль, значенню true відповідають всі інші числа.В арифметичних і логічних виразах логічні значення перетворюються в цілі числа. Арифметичні та бітові логічні операції виконуються над перетвореними величинами. Якщо результат приводиться знову до логічного типу, то 0 перетворюється в false, а ненульове значення перетворюється в true.

1.1.2 Символьні типи даних

Ідентифікатором символьного типу є ключове слово char. Символьні константи (символьні літерали) можна представляти як клавіатурні, кодові, кодові числові. Значеннями змінних типу char є множина символів таблиці ASCII. Код символу - це його порядковий номер у таблиці символів ASCІІ.

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

Символьна константа може мати префікс L (наприклад, L'a'), який означає спеціальний розширений символьний тип (wchar_t), що застосовується для зберігання символів національних алфавітів, якщо вони не можуть бути представлені звичайним однобайтовим типом char. Розмір цього типу залежить від реалізації; як правило, він відповідає типу short і займає 2 байта пам'яті.

1.1.3 Цілочисельні типи даних

Згідно зі стандартом мови С++ розмір типу int відповідає розміру машинного слова, властивому програмно-апаратній платформі конкретної системи програмування.

До типу int можна застосувати модифікатори long (довге ціле) та short (коротке ціле). Модифікатор типу long вказує, що дане буде займати не менше як 4 байти (у більшості систем програмування тип long має розмір саме 4 байти). Модифікатор short вказує, що дане не повинно перевищувати розмір типу int (у більшості реалізацій тип short займає 2 байти).

Тип int та його модифікації є знаковими типами. Це означає, що один біт (здебільшого найстарший) двійкового коду числа займає знак. Прийнято, що знак плюс позначається нулем, а знак мінус – одиницею. Від'ємні цілі числа у більшості комп'ютерних реалізацій зберігаються в доповнювальному коді.

Якщо певні дані набувають тільки додатних значень, то можна вдвічі збільшити діапазон їх додатних значень, оголосивши такі дані з модифікатором unsigned (беззнаковий). B беззнакових даних біт знака розглядається як звичайний числовий біт. Модифікатор unsigned можна застосовувати і до даних з типами long або short.

Внутрішнє представлення змінної цілого типу — ціле число у двійковому коді. Згідно формату IEEE всі додатні цілі числа зберігаються в пам'яті комп'ютера в прямому коді, а всі від'ємні – в доповняльному коді. Цілі числа зберігаються в пам'яті комп'ютера у зворотньому порядку розміщення байт числа.

1.1.4 Дійсні типи даних

Для збереження й опрацювання дійсних чисел (тобто чисел, що складаються з цілої та дробової частин) мова С++ підтримує три дійсних типи: float, double і long double.

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

В пам'яті комп'ютера змінна типу float займає 4 байти, в яких один біт виділяється під знак, 8 – під порядок, 23 – під мантису.

Тип double займає 8 байт, у яких один розряд виділяється під знак, 11 – під порядок, 52 – під мантису. Насправді в мантисі 53 розряди, але старший завжди дорівнює одиниці і тому не зберігається.

Тип long double займає 10 байт (або 8 байт), в яких один розряд виділяється під знак, 15 – під порядок, інші 64 – під мантису. Записуються всі 64 розряди мантиси разом зі старшою одиницею.

Оскільки порядок може бути додатній і від'ємний, у двійковому коді він зберігається в зміщеному виді: до нього додається константа, яка рівна абсолютній величині максимального по модулю від'ємного порядку. У випадку типу float вона дорівнює 127, у випадку double – 1023, long double – 16383. Таким чином, максимальний по модулю від'ємний порядок представляється нульовим кодом.

Дійсні числа зберігаються в пам'яті комп'ютера у зворотньому порядку розміщення байт числа.