operatori relationali
operatori logici
operatori de egalitate
Operatori aritmetici
- (minus unar);
+ (plus unar);
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];
i*x+t[5];
-y+k;
Operatori relaţionali
>= (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
Operatori logici
|| (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).
Dacă a=0 şi b=1 atunci expresia ! a||b are valoarea 1 pentru că !a are deja valoarea 1.
Lista operatorilor logici pe biţi este redată mai jos în ordinea descrecătoare a priorităţilor:
^ (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].
Operatori de egalitate
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;