В этом руководстве мы узнаем о модификаторах типов и о том, как их использовать в программировании на 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
Если нам нужно сохранить большое целое число (в диапазоне от -2147483647 до 2147483647), мы можем использовать спецификатор типа long
. Например,
// large integer long b = 123456;
Примечание: long
эквивалентно long int
.
Модификатор типа long также можно использовать с 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 содержит целое число с нулевым значением
Примечание: желательно не использовать простой символ для выполнения числовых манипуляций; Для этого следует использовать signed char или unsigned char. Обычный символ следует использовать только для хранения символьных значений.