Модификатори типа Ц ++: кратки, дуги, потписани и непотписани

У овом упутству ћемо научити о модификаторима типова и како их користити у програмирању на Ц ++ уз помоћ примера.

У програмирању на Ц ++, модификатори типова се користе за промену значења основних типова података.

У Ц ++ постоје четири модификатора типа.

  • 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;

Овде је а shortцелобројна променљива.

Напомена: short еквивалентно је short int.

лонг Модификатор типа

Ако треба да сачувамо велики цели број (у опсегу од -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;

Ево,

  • к садржи цео број са позитивном вредношћу
  • и садржи цео број са негативном вредношћу
  • з садржи цео број нулте вредности

Белешка:

  • По дефаулту су цели бројеви signed. Отуда, уместо signed int, можемо директно да користимо int.
  • signed а унсигнед се може користити само са врстама инт и цхар.

У унсигнед променљиве могу држати само не-негативне вредности целобројне. На пример,

 // positive valued integer unsigned int x = 2; unsigned int y = 0;

Ево,

  • к садржи цео број са позитивном вредношћу
  • и држи нулу

Генерално, intпроменљива може да ускладишти опсег вредности од -2,147,483,648 до 2,147,483,647 . Док, unsigned inпроменљива т може да ускладишти опсег вредности од 0 до 4,294,967,295 .

потписан, непотписан и обичан знак

, Ц ++ има 3 различите врсте Знак: char, signed charи unsigned char. У пракси постоје у основи само 2 типа: signed charи unsigned char.

То је зато што, иако charније исто као signed charи unsigned charна стандардном Ц ++, различите компилатори третирају 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;

Ево,

  • плаин_1 садржи позитиван-цео број
  • плаин_2 садржи цео број нулте вредности
  • син_1 садржи цео број са позитивном вредношћу
  • син_2 садржи цео број са нултом вредношћу
  • син_3 садржи цео број са негативном вредношћу
  • унсин_1 садржи цео број са негативном вредношћу
  • унсин_2 садржи цео број са нултом вредношћу

Напомена: Пожељно је не користити обични знак за извођење нумеричких манипулација; уместо тога за то треба користити потписани знак или непотписани знак. Обични знак треба користити само за чување вредности знакова.

Занимљиви Чланци...