Модифікатори типу C ++: короткі, довгі, підписані та непідписані

У цьому підручнику ми дізнаємося про модифікатори типів та про те, як використовувати їх у програмуванні на 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 містить ціле число з нульовим значенням

Примітка: Бажано не використовувати звичайний символ для виконання числових маніпуляцій; замість цього слід використовувати підписаний знак або беззнаковий знак. Звичайний символ слід використовувати лише для зберігання значень символів.

Цікаві статті...