У овом упутству ћемо научити о модификаторима типова и како их користити у програмирању на Ц ++ уз помоћ примера.
У програмирању на Ц ++, модификатори типова се користе за промену значења основних типова података.
У Ц ++ постоје четири модификатора типа.
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 садржи цео број са нултом вредношћу
Напомена: Пожељно је не користити обични знак за извођење нумеричких манипулација; уместо тога за то треба користити потписани знак или непотписани знак. Обични знак треба користити само за чување вредности знакова.