Sunteți pe pagina 1din 4

TIPURI DE DATE

a)Tipuri intregi:
 unsigned char – caracter fara semn, ocupa 1 octet (8 biti), valori 0....255;
 char – caracter, ocupa, 1 octet valori -128..127;
 unsigned int – intreg fara semn, ocupa 4 octeti, valori 0....4294967295
 short int – intreg scurt, 2 octeti, valori -32768.....32767
 int – intreg, 4 octeti, valori -2147483648.....2147483647
 unsigned long – intreg lung fara semn, 4 octeti , valori 0.....4294967295
 long – intreg lung cu semn, 4 octeti, valori -2147483648.....2147483647
 long long intreg lung cu semn, 8 octeti, valori: -nr cu 19 cifre.....+nr cu 19 cifre
 unsigned long long intreg lung fara semn, 8 octeti , valori 0..... nr cu 19 cifre( ~264)

b) Tipuri reale
 float - ocupa 32 biti (4 octeti), valori 3.4x10-38 si 3.4x1038;
 double – ocupa 64 biti(8 octeti), 1.7x10-308 si 1.7x10308;
 long double – ocupa 12 octeti
c) Tipul logic
 bool - ocupa 1 octet ( ex: bool a; a=true; cout<<a; va afisa 1)

CONSTANTE
-intregi -zecimale: exemplu: 23
-octale exemplu: 012
-hexazecimale exemplu: 0x1A2
-caracter exemple: ’A’ , ‘a’ , ‘5’
-reale exemple: -42.3 , .2 , 0.3, 2.3E-5 (inseamna 2.3*10 la puterea -5)
-sir de caractere : “ana are mere”
-secvente escape: ‘\a’ bel; ‘\n’ newline ( endl); ‘\t’ tab orizontal; ‘\v‘ tab vertical etc.

Definirea constantelor:
const (tip) nume_v=valoare;
Ex: const (float) pi=3.14;

EXPRESII

Expresia este o succesiune de operatori si operanzi (constante, variabile, functii) legati intre ei,
dupa reguli specifice limbajului in scopul efectuarii unor operatii(calcule, atribuiri).

Operatori aritmetici:
+ adunare
- scadere
* inmultire
/ impartire
% restul impartirii intregi
Obs: % se aplica doar numerelor intregi!
Operatori relationari:
< mai mic
<= mai mic sau egal
> mai mare
>= mai mare sau egal

Operatori de egalitate:
== egalitate
! = inegalitate

Operatori incrementare/decrementare:

++a op.de incrementare prefixat aplicat variabilei a


a+ + op.de incrementare postfixat aplicat variabilei a
-- a op.de decrementare prefixat aplicat variabilei a
a -- op.de decrementare postfixat aplicat variabilei a

Pt. ++a se face incrementarea lui a (a=a+1)si apoi se evalueaza


Pt. a ++ se face mai intai evaluarea si apoi incrementarea
int a=3, b;
b=++a; cout<<a<<' '<<b; ( se va tipari 4 4; a=a+1 si apoi b=a)
a=6;
b=a++; cout<<a<<' '<<b; ( se va tipari 7 6; b=a adica 6 si apoi a=a+1)

Operatori logici:
! Negare logica
&&,and Si logic
||,or Sau logic

a b !a a&&b a||b
0 0 1 0 0
1 0 0 0 1
0 1 1 0 1
1 1 0 1 1
a=0, a are valoarea logica 0; a=1, a are valoarea logica 1; a= -3 a are valoarea logica 1
Obs: orice variabila diferita de zero are valoarea logica 1.

Operatori logici pe biti

~ Negare pe biti ~6 (~0110 rezulta 1001 adica 9)


& Si pe biti 3&2(0011&0010  0010 adica 2)
| Sau pe biti 3|2 (0011 | 0010  0011 adica 3)
^ Sau exclusiv pe biti 6^2(0110 ^ 0010  0100 adica 4)
<< Deplasare stanga cu un nr de biti a=3;a<<2( 0011<<2  1100 adica 12)
>> Deplasare dreapta cu un nr de biti a=8; a>>2;(1000>>2  0010 adica 2)

B1 B2 B1&B2 B1 | B2 B1 ^ B2
0 0 0 0 0
1 0 0 1 1
0 1 0 1 1
1 1 1 1 0
B1=0 bitul are valoarea 0; B1=1 bitul are valoarea 1

Operatori de atribuire (= , * = , / =, % = , + =, - = ) :
v = expresie (se evalueaza expresia si se atribuie variabilei v valoarea obtinuta)
v=v1=v2=…...=vn =expresie (atribuiri multiple)
v op = expresie  v= v op expresie (ex: a+ = 3;  a = a + 3;)
Operatorul conditional: exp1? exp2 : exp3;
(daca exp1 este adevarata, va rezulta exp2, altfel va rezulta exp3)
se evalueaza exp1;
daca produce o valoare diferita de 0 , se evalueaza exp2 si este ignorata exp3;
altfel, se evalueaza exp3 si este ignorata exp2.
Ex:- modulul unui numar: y=x>=0 ? x : -x; (daca x>=0 este adevarat, y = x, altfel y= -x)
- sau maxim: max=a>b?a:b; (daca a>b e adevarat, max=a, daca nu, max=b)

Operatorul de conversie explicita(typecast): (tip_data) nume_v; sau (tip_data) expresie;

Daca vrem ca unul sau mai multi operanzi sa intre in calcul convertiti cum dorim, inaintea
operandului se trece intre paranteze tipul sau.
Ex : int a=3, b=6; float c; char d='a';
c=(float) a/b; ( c=0.5 )
c=a/b; ( c=0 )
c=4.56; cout<<(int)c; (afiseaza 4)
cout<<d; (afiseaza a)
cout<<(int)d; (afiseaza 97 care este codul ASCII al lui 'a')
Obs: variabila respectiva nu va fi convertita definitiv, ci doar in cadrul operatiei este folosita
convertita la noul tip de data.

Operatorul sizeof sizeof(tip) sau sizeof(expresie)

Aplicat unei expresii sau variabile da numarul de octeti ai acesteia:


int a=3, b=6; float c=2.5; double d=6.5;
cout<<sizeof(a); rezulta 4
cout<<sizeof(c); rezulta 4
cout<< sizeof(double); rezulta 8
cout<< sizeof(a+d); rezulta 8;
cout<<sizeof(float); rezulta 4
cout<<sizeof(long double); rezulta 12

La evaluarea expresiilor se tine cont de prioritatea operatorilor si de


asociativitate (s→d inseamna ca expesia se evalueaza de la stanga la dreapta)

PRIORITATEA OPERATORILOR ( prioritea 1 este cea mai mare )


Prioritate /denumire operator asociativitate
1 primari ( ), [ ] , -> , :: s→d
2 unari ! , ~ , + , - , ++ , -- ,* (typecast), sizeof, new, delete d→s
3 acces membri .* , ->* s→d
4 multiplicativi *, /,% s→d
5 aditivi + ,- s→d
6 deplasare pe biti << , >> s→d
7 relationali < , <= , > , >= s→d
8 de egalitate == , != s→d
9 si logic pe biti & s→d
10 sau exclusiv pe biti ^ s→d
11 sau logic pe biti | s→d
12 si logic &&, and s→d
13 sau logic ||, or s→d
14 conditional ?: d→s
15 atribuire = , *= , /= , += , - = , &= , ^=, |=, <<= , >>= d→s
16 virgula , s→d

S-ar putea să vă placă și