Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_студ1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
499 Кб
Скачать
☆

Діапазони значень простих типів даних для ibm pc

Тип

Діапазон значень

Розмір (байт)

bool

true і false

1

signed char

-128 ... 127

1

unsigned char

0 ... 255

1

signed short int

-32 768 ... 32 767

2

unsigned short int

0 ... 65 535

2

signed long int

-2 147 483 648 ... 2 147 483 647

4

unsigned long int

0 ... 4 294 967 295

4

float

3.4e-38 ... 3.4e+38

4

double

1.7e-308 ... 1.7e+308

8

long double

3.4e-4932 ... 3.4e+4932

10

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

Для написання переносимих на різні платформи програм не можна робити припущень про розмір типу int. Для його отримання необхідно користуватися операцією sizeof, результатом якої є розмір типу в байтах. Наприклад, для операційної системи MS-DOS sizeof (int) дасть в результаті 2, а для Windows 9X або OS/2 результатом буде 4.

У стандарті ANSI діапазони значень для основних типів не задаються, визначаються тільки співвідношення між їх розмірами, наприклад:

sizeof(float) sizeof(double)  sizeof(long double)

sizeof(char)  sizeof(short)  sizeof(int) sizeof(long)

Мінімальні і максимальні допустимі значення для цілих типів залежать від реалізації і приведені в заголовному файлі <limits.h> (<climits>), характеристики дійсних типів — у файлі <float.h> (<cfloat>), а також в шаблоні класу numeric_limits.

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

Цілий тип (int)

Розмір типу int не визначається стандартом, а залежить від комп'ютера і компілятора. Для 16-розрядного процесора під величини цього типу відводиться 2 байти, для 32-розрядного — 4 байти.

Специфікатор short перед ім'ям типу указує компілятору, що під число потрібно відвести 2 байти незалежно від розрядності процесора. Специфікатор long означає, що ціла величина займатиме 4 байти. Таким чином, на 16-розрядному комп'ютері еквіваленти int і short int, а на 32-розрядному — int і long int.

Внутрішнє представлення величини цілого типу — ціле число в двійковому коді. При використанні специфікатора signed старший біт числа інтерпретується як знаковий (0 — додатне число, 1 — від’ємне). Специфікатор unsigned дозволяє представляти тільки додатні числа, оскільки старший розряд розглядається як частина коду числа. Таким чином, діапазон значень типу int залежить від специфікаторів. За умовчанням всі цілочисельні типи вважаються знаковими, тобто специфікатор signed можна опускати.

Константам, що зустрічаються в програмі, приписується той або інший тип відповідно до їх вигляду. Якщо цей тип з яких-небудь причин не влаштовує програміста, він може явно вказати необхідний тип за допомогою суфіксів L, l (long) і U, u (unsigned). Наприклад, константа 32L матиме тип long і займатиме 4 байти. Можна використовувати суфікси L і U одночасно, наприклад, 0x22UL або 05Lu.