Fiecare tip de date este scris pe un anumit număr de octeți (bytes, o grupare de 8 biți), iar acest număr de octeți impune o limită. Fiind stocate în memorie în cod binar dimensiunile sunt direct influențate de numărul de cifre în baza 2 din reprezentarea acestora.

Tipuri

Numerice

Naturale

În cazul numerelor naturale , declararea variabilei trebuie să fie precedată de unsigned pentru a semnala compilatorului că numărul nu are semn.

  • unsigned short folosește 2 bytes și ia valori din:
  • unsigned int folosește 4 bytes și ia valori din:
  • unsigned long long folosește 8 bytes și ia valori din: De asemenea putem declara unsigned x; care este echivalent cu unsigned int x;

Întregi

În cazul numerelor întregi , declararea variabilei poate fi precedată opțional de signed pentru a semnala compilatorului că numărul nu are semn. Dacă nu se specifică signed sau unsigned compilatorul presupune că avem valori signed. Primul bit este rezervat pentru semn.

  • short folosește 2 bytes și ia valori din:
  • int folosește 4 bytes și ia valori din:
  • long long folosește 8 bytes și ia valori din:

Raționale/Reale

Practic pot fi stocate doar numere raționale , iar pentru numerele reale se stochează doar aproximările raționale.

  • float folosește 4 bytes
  • double folosește 8 bytes

Boolean

Tipul bool stochează doar 1 și 0 (sau true respectiv false). Deși el stochează o valoare binară, care poate fi teoretic reprezentată printr-un bit, el folosește 1 byte (8 biți) pentru că nu avem acces ca programatori la biți, doar la bytes.

  • bool folosește 1 byte

Caracter

Stocarea numerelor întregi

Luăm ca exemplu tipul de date int, care are 4 bytes, deci 32 de biți. În acest caz, scrierea numărului trebuie să se încadreze în limita a 32 de biți folosește 33 de biți, iar (vezi mai multe explicații)

unsigned

Cea mai mare valoare este .

signed

Pentru reprezentarea numerelor cu semn, se va folosi un bit dintre cei alocați scrierii numărului pentru a reprezenta semnul. 1 semnifica negativ si 0 semnifica pozitiv, iar având în vedere că am folosit un bit, vor rămâne cu 1 bit mai puțin pentru reprezentarea valorilor. Din acest motiv, vom vedea ca atunci cand reprezentam numerele signed valorile sunt mai mici. Având in vedere ca “blocăm” bitul 31 al reprezentării, ne rămân 31 de biți pentru valoarea efectivă. Din acest motiv, folosind doar 31 de biti, cea mai mare valoare pozitivă care se poate retine pe acest tip de date este . Din acest punct de vedere, în domeniul numerelor negative ar trebui sa avem cel mai mic număr egal cu . Dar deoarece este considerat valoare pozitivă, nu îl mai reprezentăm și ca număr negativ, deci putem memora o valoare în plus la numere negative. Deci cea mai mică valoare care poate fi memorată pentru signed int este .

  • Este important de precizat că deși unsigned întotdeauna poate stoca o valoare mai mare decât signed (evident comparând int cu int, short cu short, etc), intervalul (sau numărul) de numere care pot fi stocate are aceeași lungime.