Capitolul 2.5. Operatori Aritmetici
:: Programare :: C & C++ :: Capitolul 2
Pagina 1 din 1
Capitolul 2.5. Operatori Aritmetici
Operatorii aritmetici binari sint "+", "-", "*", "/" si operatorul modulo "%". Exista operatorul "-" unar dar nu exista operatorul unar "+". Impartirea intregilor trunchiaza orice parte fractionara. Expresia
x % y
produce restul cind x se imparte la y si deci este zero cind impartirea este exacta. De exemplu, un an este bisect daca este divizibil cu 4 si daca nu este divizibil cu 100, insa anii divizibili cu 400 sint bisecti. Deci
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
it's a leap year
else
it's not
Operatorul % nu poate fi aplicat la float sau double.
Operatorii + si - au aceeasi pondere, care este mai mica decit ponderea (identica) a lui *, / si % care la rindul ei este mai mica decit ponderea operatorului unar -. Operatorii aritmetici se grupeaza de la stinga la dreapta (Tabela de la sfirsitul capitolului rezuma ponderea si asociativitatea pentru toti operatorii). Ordinea de evaluare nu este specificata pentru operatorii asociativi si comutativi de tipul lui * si +.
Compilatorul poate rearanja un calcul cu paranteze implicind unul din acestia. Astfel, a+(b+c) poaate fi evaluat ca (a+b)+c. Acest lucru produce rar diferente dar daca se cere o ordine particulara, trebuie folosite explicit variabilele temporare.
Actiunile care produc depasiri superioare sau inferioare depind in ultima instanta de calculator.
x % y
produce restul cind x se imparte la y si deci este zero cind impartirea este exacta. De exemplu, un an este bisect daca este divizibil cu 4 si daca nu este divizibil cu 100, insa anii divizibili cu 400 sint bisecti. Deci
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
it's a leap year
else
it's not
Operatorul % nu poate fi aplicat la float sau double.
Operatorii + si - au aceeasi pondere, care este mai mica decit ponderea (identica) a lui *, / si % care la rindul ei este mai mica decit ponderea operatorului unar -. Operatorii aritmetici se grupeaza de la stinga la dreapta (Tabela de la sfirsitul capitolului rezuma ponderea si asociativitatea pentru toti operatorii). Ordinea de evaluare nu este specificata pentru operatorii asociativi si comutativi de tipul lui * si +.
Compilatorul poate rearanja un calcul cu paranteze implicind unul din acestia. Astfel, a+(b+c) poaate fi evaluat ca (a+b)+c. Acest lucru produce rar diferente dar daca se cere o ordine particulara, trebuie folosite explicit variabilele temporare.
Actiunile care produc depasiri superioare sau inferioare depind in ultima instanta de calculator.
Subiecte similare
» Capitolul 2. TIPURI, OPERATORI SI EXPRESII
» Capitolul 2.6. Operatori relationali si logici
» Capitolul 2.8. Operatori de incrementare si decrementare
» Capitolul 2.9. Operatori logici pe biti
» Capitolul 2.10.Operatori si expresii de asignare
» Capitolul 2.6. Operatori relationali si logici
» Capitolul 2.8. Operatori de incrementare si decrementare
» Capitolul 2.9. Operatori logici pe biti
» Capitolul 2.10.Operatori si expresii de asignare
:: Programare :: C & C++ :: Capitolul 2
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|