Модификатори на типа 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.

long Type Modifier

Ако трябва да съхраним голямо цяло число (в диапазона от -2147483647 до 2147483647), можем да използваме спецификатора на типа long. Например,

 // large integer long b = 123456;

Забележка: long е еквивалентно на long int.

Модификаторът от дълъг тип може да се използва и с 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 държи нула

In general, an int variable can store a range of values from -2,147,483,648 to 2,147,483,647. Whereas, an unsigned int variable can store a range of values from 0 to 4,294,967,295.

signed, unsigned and plain char

C++ has 3 different char types: char, signed char and unsigned char. In practice, there are basically only 2 types: signed char and unsigned char.

This is because even though char is not the same as signed char or unsigned char in standard C++, different compilers treat char as either signed char or unsigned char according to their own preference.

Note: When we only use char instead of signed char or unsigned char, this type is known as plain 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 съдържа цяло число с нулева стойност

Забележка: За предпочитане е да не използвате обикновен знак за извършване на цифрови манипулации; вместо това трябва да се използва подписан знак или неподписан знак. Обикновеният знак трябва да се използва само за съхраняване на стойности на символи.

Интересни статии...