Modifikatorji tipa C ++: kratki, dolgi, podpisani in nepodpisani

V tej vadnici bomo s pomočjo primerov spoznali modifikatorje vrst in kako jih uporabiti pri programiranju na C ++.

Pri programiranju na C ++ se modifikatorji vrst uporabljajo za spreminjanje pomena osnovnih podatkovnih tipov.

V jeziku C ++ obstajajo štirje modifikatorji.

  • short
  • long
  • signed
  • unsigned

Tu je kratek povzetek:

Vrsta podatkov Velikost (v bajtih) Pomen
signed int 4. uporablja se za cela števila (enakovredno int)
unsigned int 4. lahko shrani samo negativna cela števila
short 2. uporablja se za majhna cela števila (obseg od -32768 do 32767 )
long vsaj 4 uporablja se za velika cela števila (kar ustreza long int)
unsigned long 4. uporablja se za velika pozitivna cela števila ali 0 (kar ustreza unsigned long int)
long long 8. uporablja se za zelo velika cela števila (kar ustreza long long int).
unsigned long long 8. uporablja se za zelo velika pozitivna cela števila ali 0 (kar ustreza unsigned long long int)
long double 8. uporablja se za velika števila s plavajočo vejico
signed char 1. uporablja se za znake (zajamčeno območje od -127 do 127 )
unsigned char 1. uporablja se za znake (obseg od 0 do 255 )

kratki tip Modifikator

Lahko uporabimo shortza majhna cela števila (v območju −32,767do +32,767).

Na primer

 // small integer short a = 12345;

Tu je a shortceloštevilčna spremenljivka.

Opomba: short je enakovredno short int.

dolgi modifikator tipa

Če moramo shraniti veliko celo število (v razponu od -2147483647 do 2147483647), lahko uporabimo specifikator tipa long. Na primer

 // large integer long b = 123456;

Opomba: long je enakovredno long int.

Modifikator dolgega tipa se lahko uporablja tudi s doublespremenljivkami.

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

Opomba: Za označevanje long doubleuporabljamo Lpripono. Če končnice ne uporabimo L, doublese pretvori v vrednost, long doubleki lahko povzroči izgubo podatkov.

dolgo dolgo

longlahko dvakrat ponovite, da ustvarite long longtip. Ta vrsta se uporablja za celo večje številke kot long. long longmodifikatorja tipa lahko uporabljate samo z int.

Na primer

 // long long int long long num = 12345678;

podpisani in nepodpisani modifikatorji

Podpisane spremenljivke lahko vsebujejo pozitivna in negativna cela števila, vključno z ničlo . Na primer

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

Tukaj,

  • x vsebuje pozitivno vrednoteno celo število
  • y ima celo število z negativno vrednostjo
  • z vsebuje ničvredno celo število

Opomba:

  • Privzeto so cela števila signed. Namesto tega signed intlahko neposredno uporabljamo int.
  • signed in unsigned se lahko uporablja samo z vrstami int in char.

V nepodpisani spremenljivke lahko sprejme samo zunaj negativne vrednosti celo število. Na primer

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

Tukaj,

  • x vsebuje pozitivno vrednoteno celo število
  • y ima nič

Na splošno lahko intspremenljivka shrani obseg vrednosti od -2,147,483,648 do 2,147,483,647 . Medtem ko unsigned inlahko spremenljivka t shrani obseg vrednosti od 0 do 4.294.967.295 .

podpisan, nepodpisan in navaden znak

C ++ ima 3 različne vrste char: char, signed charin unsigned char. V praksi obstajata v osnovi le dve vrsti: signed charin unsigned char.

To je zato, ker, čeprav charni enak signed charali unsigned charv standardni C ++, različni prevajalniki obravnava charkot eno signed charali unsigned charpo lastni izbiri.

Opomba: Ko uporabljamo samo charnamesto signed charali unsigned char, je ta vrsta znana kot navaden znak .

Kot ste že uganili, signed charlahko shrani pozitivna in negativna cela števila, medtem ko unsigned charlahko shrani samo pozitivna cela števila (vključno z 0 ).

Zajamčena razpon število vrednosti signed charlahko shrani je -127 do 127 , medtem ko je območje unsigned charje od 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;

Tukaj,

  • plain_1 vsebuje pozitivno celo število
  • plain_2 vsebuje ničvredno celo število
  • sin_1 ima pozitivno celo število
  • sin_2 vsebuje ničvredno celo število
  • sin_3 vsebuje negativno vrednoteno celo število
  • unsin_1 vsebuje negativno vrednoteno celo število
  • unsin_2 vsebuje ničvredno celo število

Opomba: Bolje je, da za izvajanje numeričnih manipulacij ne uporabljate navadnega znaka; Namesto tega je treba uporabiti podpisani znak ali nepodpisani znak. Navaden znak se sme uporabljati samo za shranjevanje vrednosti znakov.

Zanimive Članki...