Modificatori de tip C ++: scurt, lung, semnat și nesemnat

În acest tutorial, vom învăța despre modificatorii de tip și cum să le utilizați în programarea C ++ cu ajutorul exemplelor.

În programarea C ++, modificatorii de tip sunt folosiți pentru a schimba semnificația tipurilor de date fundamentale.

Există patru modificatori de tip în C ++.

  • short
  • long
  • signed
  • unsigned

Iată un scurt rezumat:

Tipul de date Dimensiune (în octeți) Sens
signed int 4 folosit pentru numere întregi (echivalent cu int)
unsigned int 4 poate stoca numai numere întregi care nu sunt negative
short 2 utilizat pentru numere întregi mici (intervalul -32768 până la 32767 )
long cel puțin 4 folosit pentru numere întregi mari (echivalent cu long int)
unsigned long 4 folosit pentru numere întregi pozitive mari sau 0 (echivalent cu unsigned long int)
long long 8 folosit pentru numere întregi foarte mari (echivalent cu long long int).
unsigned long long 8 folosit pentru numere întregi pozitive foarte mari sau 0 (echivalent cu unsigned long long int)
long double 8 folosit pentru numerele mari cu virgulă mobilă
signed char 1 folosit pentru caractere (interval garantat -127 până la 127 )
unsigned char 1 utilizat pentru caractere (interval 0 - 255 )

modificator de tip scurt

Putem folosi shortpentru întregi mici (în intervalul de −32,767la +32,767).

De exemplu,

 // small integer short a = 12345;

Aici, a este o shortvariabilă întreagă.

Notă: short este echivalent cu short int.

modificator de tip lung

Dacă trebuie să stocăm un număr întreg mare (în intervalul -2147483647 până la 2147483647), putem folosi specificatorul de tip long. De exemplu,

 // large integer long b = 123456;

Notă: long este echivalent cu long int.

Modificatorul de tip lung poate fi folosit și cu doublevariabile.

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

Notă: Pentru a indica long double, folosim Lsufixul. Dacă nu folosim sufixul L, este o doublevaloare care este convertită în long double(ceea ce poate duce la pierderea datelor).

lung lung

longpoate fi repetat de două ori pentru a crea long longtipul. Acest tip este utilizat pentru numere chiar mai mari decât long. long longmodificatorul de tip poate fi utilizat numai cu int.

De exemplu,

 // long long int long long num = 12345678;

modificatori semnați și nesemnați

Variabilele semnate pot conține atât numere întregi pozitive, cât și negative, inclusiv zero . De exemplu,

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

Aici,

  • x deține un număr întreg cu valoare pozitivă
  • y deține un număr întreg cu valoare negativă
  • z deține un număr întreg cu valoare zero

Notă:

  • În mod implicit, numerele întregi sunt signed. Prin urmare, în loc de signed int, putem folosi direct int.
  • signed și nesemnat poate fi utilizat numai cu tipuri int și char.

De Variabilele nesemnate pot deține valori întregi numai non-negative. De exemplu,

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

Aici,

  • x deține un număr întreg cu valoare pozitivă
  • y deține zero

În general, o intvariabilă poate stoca un interval de valori de la -2.147.483.648 la 2.147.483.647 . În timp ce, o unsigned invariabilă t poate stoca o serie de valori de la 0 la 4.294.967.295 .

semnat, nesemnat și simplu

C ++ are 3 tipuri diferite: char char, signed charși unsigned char. În practică, există practic doar 2 tipuri: signed charși unsigned char.

Acest lucru se datorează faptului că, deși charnu este același cu signed charsau unsigned charîn C ++ standard, diferite compilatoare se tratează charca fiind signed charsau în unsigned charfuncție de propria lor preferință.

Notă: Când folosim doar charîn loc de signed charsau unsigned char, acest tip este cunoscut sub numele de char simplu .

Așa cum ați fi putut ghici, signed charpoate stoca atât numere întregi pozitive, cât și negative, în timp ce unsigned charpoate stoca numai numere întregi pozitive (inclusiv 0 ).

Garantată intervalul de valori întregi signed charpot stoca este -127-127 în timp ce intervalul de unsigned chareste 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;

Aici,

  • plain_1 deține un număr întreg cu valoare pozitivă
  • plain_2 deține un număr întreg cu valoare zero
  • sin_1 deține un număr întreg cu valoare pozitivă
  • sin_2 deține un număr întreg cu valoare zero
  • sin_3 deține un număr întreg cu valoare negativă
  • unsin_1 deține un număr întreg cu valoare negativă
  • unsin_2 deține un număr întreg cu valoare zero

Notă: Este de preferat să nu folosiți caractere simple pentru a efectua manipulări numerice; Pentru aceasta ar trebui să fie folosite caractere semnate sau nesemnate. Caracterul simplu trebuie utilizat numai pentru a stoca valorile caracterelor.

Articole interesante...