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

Если нам нужно сохранить большое целое число (в диапазоне от -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. Обычный символ следует использовать только для хранения символьных значений.

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