В этом руководстве мы узнаем о модификаторах типов и о том, как их использовать в программировании на C ++, с помощью примеров.
В программировании на C ++ модификаторы типа используются для изменения значения основных типов данных.
В C ++ есть четыре модификатора типа.
shortlongsignedunsigned
Вот краткое изложение:
| Тип данных | Размер (в байтах) | Смысл |
|---|---|---|
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. Следовательно, вместо этогоsignedintмы можем напрямую использовать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. Обычный символ следует использовать только для хранения символьных значений.








