Modifikatori tipa C ++: kratki, dugi, potpisani i nepotpisani

U ovom ćemo uputstvu uz primjere naučiti o modifikatorima tipova i kako ih koristiti u programiranju na C ++.

U programiranju na C ++, modifikatori tipova koriste se za promjenu značenja osnovnih tipova podataka.

U C ++-u postoje četiri modifikatora tipa.

  • short
  • long
  • signed
  • unsigned

Evo kratkog sažetka:

Vrsta podataka Veličina (u bajtovima) Značenje
signed int 4 koristi se za cijele brojeve (ekvivalentno int)
unsigned int 4 može pohraniti samo negativne cijele brojeve
short 2 koristi se za male cijele brojeve (raspon od -32768 do 32767 )
long najmanje 4 koristi se za velike cijele brojeve (ekvivalentno long int)
unsigned long 4 koristi se za velike pozitivne cijele brojeve ili 0 (ekvivalentno unsigned long int)
long long 8 koristi se za vrlo velike cijele brojeve (ekvivalentno long long int).
unsigned long long 8 koristi se za vrlo velike pozitivne cijele brojeve ili 0 (ekvivalentno unsigned long long int)
long double 8 koristi se za velike brojeve s pomičnom zarezom
signed char 1 koristi se za znakove (zajamčeni raspon -127 do 127 )
unsigned char 1 koristi se za znakove (raspon od 0 do 255 )

modifikator kratkog tipa

Možemo koristiti shortza male cijele brojeve (u rasponu −32,767do +32,767).

Na primjer,

 // small integer short a = 12345;

Ovdje je a shortcjelobrojna varijabla.

Napomena: short ekvivalentno je short int.

dugi Modifikator tipa

Ako trebamo pohraniti veliki cijeli broj (u rasponu od -2147483647 do 2147483647), možemo koristiti specifikator tipa long. Na primjer,

 // large integer long b = 123456;

Napomena: long ekvivalentno je long int.

Modifikator dugog tipa također se može koristiti s doublevarijablama.

 // large floating-point number long double c = 0.333333333333333333L;

Napomena: Za označavanje long doublekoristimo Lsufiks. Ako ne koristimo sufiks L, to je doublevrijednost u koju se pretvara long double(što može rezultirati gubitkom podataka).

dugo dugo

longmože se ponoviti dva puta za stvaranje long longvrste. Ova se vrsta koristi za još veće brojeve od long. long longmodifikator tipa može se koristiti samo s int.

Na primjer,

 // long long int long long num = 12345678;

potpisani i nepotpisani modifikatori

Potpisane varijable mogu sadržavati pozitivne i negativne cijele brojeve, uključujući nulu . Na primjer,

 // positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;

Ovdje,

  • x sadrži pozitivan-vrijedan cijeli broj
  • y ima negativan-vrijedan cijeli broj
  • z sadrži cijeli broj nulte vrijednosti

Bilješka:

  • Prema zadanim postavkama, cijeli brojevi su signed. Stoga, umjesto signed int, možemo izravno koristiti int.
  • signed a unsigned se može koristiti samo s vrstama int i char.

U nepotpisani varijable mogu držati samo ne-negativne vrijednosti cjelobrojne. Na primjer,

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

Ovdje,

  • x sadrži cijeli broj s pozitivnom vrijednošću
  • y drži nulu

Općenito, intvarijabla može pohraniti raspon vrijednosti od -2,147,483,648 do 2,147,483,647 . Dok unsigned invarijabla t može pohraniti raspon vrijednosti od 0 do 4,294,967,295 .

potpisan, nepotpisan i običan znak

C ++ ima 3 različite vrste: char char, signed chari unsigned char. U praksi postoje u osnovi samo 2 vrste: signed chari unsigned char.

To je zato što, iako charnije isto što signed charili unsigned charu standardnom C ++-u, različiti kompajleri tretiraju charkao signed charili unsigned charprema vlastitim željama.

Napomena: Kada koristimo samo charumjesto signed charili unsigned char, ovaj tip poznat je kao obični znak .

Kao što ste mogli pretpostaviti, signed charmože pohraniti i pozitivne i negativne cijele brojeve, dok unsigned charmože pohraniti samo pozitivne cijele brojeve (uključujući 0 ).

Zajamčena Raspon broj vrijednosti signed charmože pohraniti je -127 do 127 , dok je raspon unsigned charje 0 do 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;

Ovdje,

  • plain_1 sadrži pozitivnu vrijednost cijelog broja
  • plain_2 sadrži cijeli broj nulte vrijednosti
  • sin_1 sadrži pozitivnu vrijednost cijelog broja
  • sin_2 sadrži cijeli broj nulte vrijednosti
  • sin_3 sadrži negativnu cijelu vrijednost
  • unsin_1 sadrži negativnu cijelu vrijednost
  • unsin_2 sadrži cijeli broj nulte vrijednosti

Napomena: Poželjno je ne koristiti obični znak za izvođenje numeričkih manipulacija; umjesto toga treba upotrijebiti potpisani znak ili nepotpisani znak. Obični znak treba koristiti samo za pohranu vrijednosti znakova.

Zanimljivi članci...