Основним типом даних, який використовується при роботі з цілими числами, є тип int (від англ. integer – ціле число). До типу int можна застосовувати модифікатори long (довге ціле), short (коротке ціле). Діапазони допустимих значень цілих типів даних компілятора Microsoft Visual Studio 2010 наведені в таблиці 2.1. Для інших компіляторів розмір в байтах та діапазон значень може відрізнятися.
Тип int ті його модифікації є знаковими типами – один біт (здебільшого найстаршій) двійкового коду числа займає знак. Прийнято, що знак плюс позначається нулем, знак мінус – одиницею. За замовчуванням змінні є знаковими (позначені необов’язковим модифікатором signed). Якщо певні дані набувають лише додатних значень, то можна вдвічі збільшити діапазон допустимих значень змінних оголосивши їх з модифікатором unsigned (беззнаковий). У беззнакових змінних біт знака розглядається як звичайний біт даних. Модифікатор unsigned можна використовувати разом з модифікаторами long і short.
Таблиця 2.1. Діапазони допустимих значень цілих типів
Тип
| Розмір в байтах
| Діапазон значень
|
int
|
| -2 147 483 648 … 2 147 483 648
|
short int
|
| 32 768 … 32 767
|
unsigned short int
|
| 0 … 65 565
|
long int
|
| -2 147 483 648 … 2 147 483 648
|
unsigned long int
|
| 0 … 4 294 967 295
|
long long int
|
| -263 … 263-1
|
unsigned long long int
|
| 0 … 264-1
|
char
|
| -128 … 127
|
unsigned char
|
| 0 … 255
|
Цілочислові константи можна записувати в трьох формах – десятковій, вісімковій, шістнадцітковій (див. розділ 1.6). Тип цілочислової константи встановлюється за її значенням і формою запису по таким правилам: 1) якщо значення константи потрапляє в діапазон значень типу int, то така константа отримує тип int; 2) інакше, якщо це беззнакова вісімкова чи шистнадцяткова константа, яка потрапляє в діапазон значень типу unsigned int, їй присвоюється тип unsigned int; 3) інакше, якщо значення константи потрапляє в діапазон значень типу long int, то ця константа отримує тип long int; 4) інакше, якщо константа беззнакова і потрапляє в діапазон значень типу unsigned long int, вона отримує цей тип; 5) інакше фіксується помилка.
Можна модифікувати тип константи. Для цього до числа долучають кінцеві символи u ( або U) та l (або L). Символ u/U вказує, що константі має бути присвоєний модифікатор unsigned, символ l/L розширює константу до розміру типу long int. Можна поєднувати обидва символи модифікації типу в довільному порядку. Наприклад, 0x1bd83ul – константа отримає тип unsigned long int.
Мова С++ відносить тип даних char (від англ. character – літера) до цілочислових типів. Через це тип даних char сумісний з усіма арифметичними типами.
До цілочислових констант належать також символьні константи. Символьна константа – це довільний, допустимий для встановленої на комп’ютері кодової таблиці графічний символ або ескейп-послідовність, записані в апострофах. Значенням символьної константи є числове значення коду символу. Саме код символу бере участь у всіх операціях, в які ступає символьна константа. Одну за значенням символьну константу можна записати декількома способами: ‘*’ – символьне зображення, ‘\052’ – вісімкова ескейп-послідовність, ‘\Х2А’ – шістнадцяткова ескейп-послідовність.
Логічний тип даних теж належить до цілих типів. Змінні цього типу можуть набувати два значення – true, false. В якості логічних змінних можна також використовувати змінні будь-якого цілочислового типу. При цьому нульове значення відповідає значенню false, будь-яке ненульове – значенню true.
В заголовному файлі limits записано набір макроконстант (іменованих констант), значення яких дорівнюють мінімальним і максимальним значенням, встановленим для цілих типів у даній системі програмування. Макроконстанти деяких граничних цілочислових значень наведені в таблиці 2.2.
Таблиця 2.2. Макроконстанти деяких граничних цілочислових значень
Ім’я макроконстанти
| Значення макроконстанти
|
CHAR_MIN, CHAR_MAX
| Найменше і найбільше значення даних з типом char
|
SCHAR_MIN, SCHAR_MAX
| Найменше і найбільше значення даних з типом signed char
|
INT_MIN, INT_MAX
| Діапазон значень даних з типом int
|
SHRT_MIN, SHRT_MAX
| Діапазон значень даних з типом short int
|
LONG_MIN, LONG_MAX
| Діапазон значень даних з типом long int
|
LLONG_MAX
| Діапазон значень даних з типом long long int
|