В този урок ще научим за модификаторите на типове и как да ги използваме в програмирането на 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 in
t 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 съдържа цяло число с нулева стойност
Забележка: За предпочитане е да не използвате обикновен знак за извършване на цифрови манипулации; вместо това трябва да се използва подписан знак или неподписан знак. Обикновеният знак трябва да се използва само за съхраняване на стойности на символи.