У цьому підручнику ми дізнаємося про модифікатори типів та про те, як використовувати їх у програмуванні на C ++ за допомогою прикладів.
У програмуванні на C ++ модифікатори типів використовуються для зміни значення основних типів даних.
У C ++ є чотири модифікатори типу.
short
long
signed
unsigned
Ось короткий підсумок:
Тип даних | Розмір (у байтах) | Значення |
---|---|---|
signed int | 4 | використовується для цілих чисел (еквівалентно int ) |
unsigned int | 4 | може зберігати лише цілі невід’ємні числа |
short | 2 | використовується для малих цілих чисел (діапазон від -32768 до 32767 ) |
long | принаймні 4 | використовується для великих цілих чисел (еквівалентно long int ) |
unsigned long | 4 | використовується для великих натуральних чисел або 0 (еквівалентно unsigned long int ) |
long long | 8 | використовується для дуже великих цілих чисел (еквівалентно long long int ). |
unsigned long long | 8 | використовується для дуже великих натуральних чисел або 0 (еквівалентно unsigned long long int ) |
long double | 8 | використовується для великих чисел із плаваючою комою |
signed char | 1 | використовується для символів (гарантований діапазон від 127 до 127 ) |
unsigned char | 1 | використовується для символів (діапазон від 0 до 255 ) |
модифікатор короткого типу
Ми можемо використовувати short
для малих цілих чисел (в діапазоні −32,767
до +32,767
).
Наприклад,
// small integer short a = 12345;
Тут a є short
цілою змінною.
Примітка: short
еквівалентно short int
.
довгий модифікатор типу
Якщо нам потрібно зберегти велике ціле число (в діапазоні від -2147483647 до 2147483647), ми можемо використовувати специфікатор типу long
. Наприклад,
// large integer long b = 123456;
Примітка: long
еквівалентно long int
.
Модифікатор long type також може використовуватися зі double
змінними.
// large floating-point number long double c = 0.333333333333333333L;
Примітка: Для позначення long double
ми використовуємо L
суфікс. Якщо ми не використовуємо суфікс L
, це double
значення перетворюється на long double
(що може призвести до втрати даних).
довгий довгий
long
можна повторити двічі, щоб створити long long
тип. Цей тип використовується для навіть більших чисел, ніж long
. long long
модифікатор типу можна використовувати лише з int
.
Наприклад,
// long long int long long num = 12345678;
підписані та непідписані модифікатори
Підписані змінні можуть містити як додатні, так і від’ємні цілі числа, включаючи нуль . Наприклад,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Ось,
- x містить цілочисельне додатне значення
- y містить цілочисельне від'ємне значення
- z містить ціле число з нульовим значенням
Примітка:
- За замовчуванням цілі числа є
signed
. Отже, замістьsigned
int
, ми можемо безпосередньо використовуватиint
. signed
і unsigned можна використовувати лише з типами int та char.
У непідписаних змінні можуть містити тільки невід'ємні цілі значення. Наприклад,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Ось,
- x містить цілочисельне додатне значення
- y дорівнює нулю
Загалом, int
змінна може зберігати діапазон значень від -2,147,483,648 до 2,147,483,647 . Тоді як unsigned in
змінна t може зберігати діапазон значень від 0 до 4 294 967 295 .
підписаний, без підпису та простий знак
C ++ має 3 різних типів напівкоксу: char
, signed char
і unsigned char
. На практиці існує в основному лише 2 типи: signed char
і unsigned char
.
Це пов’язано з тим, що навіть незважаючи на те, що char
це не те саме, що signed char
і unsigned char
на стандартному C ++, різні компілятори розглядають char
як signed char
або unsigned char
відповідно до своїх уподобань.
Примітка: Коли ми використовуємо лише char
замість signed char
або unsigned char
, цей тип відомий як звичайний символ .
Як ви вже здогадалися, signed char
може зберігати як додатні, так і від’ємні цілі числа, тоді як unsigned char
може зберігати лише додатні цілі числа (включаючи 0 ).
Гарантується діапазон цілочисельних значень signed char
може зберігати це від -127 до 127 , а діапазон unsigned char
становить від 0 до 255 .
// plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Ось,
- plain_1 містить цілочисельне додатне значення
- plain_2 містить ціле число з нульовим значенням
- sin_1 містить цілочисельне додатне значення
- sin_2 містить ціле число з нульовим значенням
- sin_3 містить цілочисельне від'ємне значення
- unsin_1 містить цілочисельне від'ємне значення
- unsin_2 містить ціле число з нульовим значенням
Примітка: Бажано не використовувати звичайний символ для виконання числових маніпуляцій; замість цього слід використовувати підписаний знак або беззнаковий знак. Звичайний символ слід використовувати лише для зберігання значень символів.