Operators have the following precedence levels, where 1 is the highest level and 6 is the lowest:
unary (single argument) - + ~
* /%
binary (two argument) + - & | ^
not
and
or
When all operators in an expression are of the same level, the order of execution is left to right. You can change the order of execution with parentheses—the most deeply nested expression is executed first.