Sunteți pe pagina 1din 4

operatori aritmetici

operatori relationali

operatori logici

operatori logici pe biti

operatori de egalitate

Operatori aritmetici

Lista operatorilor aritmetici este redată mai jos:

- (minus unar);

+ (plus unar);

* / % operatori binari multiplicativi; (înmulţire, împărţire, restul împărţirii întregi);

+ - operatori binari aditivi (adunare şi scădere).

Operatorii de pe aceeaşi linie au aceeaşi prioritate. Cei unari au prioritate mai mare decât
cei binari. Operatorii multiplicativi au prioritate mai mare decât cei aditivi.

Exemple:

int i,j,k;

float x,y;

double t[10];

// se dau cateva exemple de expresii folosind operatorii aritmetici

i*x+t[5];

-y+k;

i%j; // daca i=9 si j=4 atunci i%j are valoarea 1

i/j; // daca i=9 si j=4 atunci i/j are valoarea 2

x*-y; // - este operatorul unar deci avem x*(-y)

Operatori relaţionali

Lista operatorilor relaţionali este redată astfel:

< (mai mic)


<= (mai mic sau egal; cele două caractere ce compun operatorul sunt concatenate)

> (mai mare)

>= (mai mare sau egal; cele două caractere ce compun operatorul sunt concatenate)

Toţi operatorii relaţionali au aceeaşi prioritate. Ea este mai mică decât prioritatea
operatorilor aditivi. Rezultatul aplicării unui operator relaţional este 1 sau 0, după cum
operanzii se află în relaţia definită de operatorul respectiv sau nu.

Exemple:

a= 4 şi b= -5

atunci a>0 are valoarea 1;

a<=0 are valoarea 0;

a+b>0 are valoarea 0;

a>=b are valoarea 1;

a<0 are valoarea 1;

a+b>=b-a are valoarea 1;

a+b<=(b-a)*(b-a) are valoarea 0;

Operatori logici

Lista operatorilor logici este redată mai jos:

! (negaţia logică - operator unar);

&& (ŞI logic);

|| (SAU logic).

Operatorul “!” are aceeaşi prioritate cu operatorii unari “+” şi “-“. Operatorul “&&” este
mai prioritar decât operatorul “||”, dar are o prioritate mai mică decât operatorii de egalitate.

În limbajul C nu există valori logice speciale. Valoarea fals se reprezintă prin zero. Orice
valoare diferită de zero reprezintă valoarea adevărat.

Dacă operatorul “!” se aplică la un operand a cărui valoare este zero, atunci rezultatul este
1. Dacă acelaşi operator se aplică la un operand a cărui valoare este diferită de zero, atunci
rezultatul este 0.
Chiar dacă pentru “sau exclusiv” nu există operator el se poate realiza prin expresia următoare
aplicată operanzilor a şi b: !a&&b||!b&&a sau folosind parantezele rotunde ((!a)
&&b)||((!b)&&a).

Operatorii logici se evaluează de la stânga la dreapta. Dacă la evaluarea unei expresii se


ajunge într-un punct în care se cunoaşte valoarea întregii expresii, atunci restul expresiei nu se
mai evaluează.

Dacă a=0 şi b=1 atunci expresia ! a||b are valoarea 1 pentru că !a are deja valoarea 1.

Operatori logici pe biţi

Lista operatorilor logici pe biţi este redată mai jos în ordinea descrecătoare a priorităţilor:

~ (operator unar; complement faţă de 1)

>> << (deplasări la dreapta, respectiv la stânga)

& (ŞI pe biţi)

^ (SAU-EXCLUSIV pe biţi)

| (SAU pe biţi)

Operatorul “~”, fiind unar, are aceeaşi prioritate ca şi ceilalţi operatori unari ai limbajului
C. El schimbă fiecare bit 1 al operandului în 0 şi invers.

Operatorul “>>” realizează deplasarea la dreapta care este echivalentă cu o împărţire întreagă
cu puteri a lui 2; a >> 3 este echivalentă cu [a/23].

Operatorul “<<” realizează deplasarea la stânga care este echivalentă cu o înmulţire cu


puteri a lui 2; a << 3 este echivalentă cu a*8.

Operatori de egalitate

Lista operatorilor de egalitate este redată mai jos:

= = (egal; două semne “=” concatenate)

!= (diferit; semnele sunt concatenate).

Operatorii de egalitate au ambii aceeaşi prioritate şi este imediat mai mică decât a
operatorilor relaţionali. Operatorul “= =” testează egalitatea a doi operanzi. Dacă operanzii
sunt egali atunci rezultatul operaţiei “= =” este 1, în caz contrar este 0. Operatorul “!=”
furnizează rezultatul 1 când cei doi operanzi sunt diferiţi şi 0 când sunt egali.

Exemple:

a= 2 şi b=-1
atunci

a= =b are valoarea 0;

a!=b are valoarea 1;

a*b!=a+b are valoarea 1;

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