# Operator Precedence

### Operator:

. An object that is capable of manipulating value or operand.

### Types of Operators:

#### 1. Arithmetic Operators:

OperatorDescription
-Subtracts two values
*Multiplies two values
/Divides two values
%Returns remainder of two values

#### 2. Logical / Relational Operators:

OperatorDescription
==Returns true if two operands are equal
!=Returns true if two operands are unequal
>Returns true if left value is greater than right
<Returns true if left value is less than right
>=Returns true if left value is greater than or equal to right
<=Returns true if left value is less than or equal to right
&&Returns true if both expressions are true
||Returns true if either of expressions is true
!Reverses the value of expression

#### 3. Bitwise Operators:

. Works on bits.
. Converts value of operand into bits and perform operations.
OperatorDescription
&Performs Binary AND between two operands
|Performs Binary OR between two operands
^Performs Binary XOR between two operands
~Complements value
<<Performs Binary shift left
>>Performs Binary shift right

#### 4. Assignment Operators:

OperatorDescription
=Simple Assignment
+=Adds and assigns result in left operand
-=Subtracts and assigns result in left operand
*=Multiplies and assigns result in left operand
/=Divides and assigns result in left operand
%=Perform modulus and assigns result in left operand
<<=Perform binary left shift and assigns result in left operand
>>=Perform binary right shift and assigns result in left operand
&=Perform logic AND and assigns result in left operand
|=Perform logic OR and assigns result in left operand

#### 5. Unary Operators:

OperatorDescription
+Unary plus
-Unary minus
++Post/Pre Increment
--Post/Pre Decrement

### Precedence:

. Characteristic of operators which indicates when they will be evaluated when they appear in expression.
. Example: '*' has higher precedence than '+'
. When several operations occur in expression, each part is evaluated and resolved in an order.
. Mathematical expressions should follow BODMAS rule which shows precedence of using operator in levels.
OperatorPrecedence
Postfixexpr++   expr--
Unary++expr   --expr   +expr   -expr
Multiplicative*   /   %