Arithmetic Operators
There are 5 arithmetic operators in C language.
- * (Multiplication)
- / (Divide)
- % (Modulus)
- + (addition)
- – (Subtraction)
Operators *,/ and % are having the same priority but higher priority than + and -. Operator + and – are having equal priority.
For example, in the following expression
x=3+4*5/2-7;
x=3+4*5/2-7;
first, we solve *, as it has higher priority than + and -. Whenever two or more arithmetic operators of the same priority come in the expression, then we have resolved them in left to right manner. Since * comes in the left in comparison to / operator, it will be solved first.
Associativity rule is left to right for arithmetic operators, which means equal priority operators will be resolved in left to right manner.
Associativity rule is left to right for arithmetic operators, which means equal priority operators will be resolved in left to right manner.
Step 1: x=3+20/2-7;
Step 2: x=3+10-7;
Step 3: x=13-7;
Step 4: x=6;
Step 2: x=3+10-7;
Step 3: x=13-7;
Step 4: x=6;
behavior of operators
3+4 is 7
3-4 is -1
3*4 is 12
3/4 is 0
3+4 is 7
3-4 is -1
3*4 is 12
3/4 is 0
+,- and * operators behaves as expected but divide operator seems to be different.
Reason: Operation between two integers will give integer result only.
3 and 4 are integers, mathematically result should be 0.75 but in C language decimal point and subsequent digits are ignored and only integral part is considered. So the answer is 0.
Reason: Operation between two integers will give integer result only.
3 and 4 are integers, mathematically result should be 0.75 but in C language decimal point and subsequent digits are ignored and only integral part is considered. So the answer is 0.
More examples:
4/3 is 1
12/5 is 2
15/5 is 3
-15/2 is -7
4/3 is 1
12/5 is 2
15/5 is 3
-15/2 is -7
Now observer following expressions
3.0/4 is 0.75
3/4.0 is 0.75
3.0/4.0 is 0.75
3/4.0 is 0.75
3.0/4.0 is 0.75
When at least one of the operand is real, the result will be real.
The modulus operator (%)
Modulus operator gives the remainder as a result.
Modulus operator gives the remainder as a result.
Following are a few examples
5%2 is 1
17%5 is 2
10%2 is 0
21%10 is 1
3%4 is 3
17%5 is 2
10%2 is 0
21%10 is 1
3%4 is 3
Remember: In C language operands of modulus operator can’t be a real value. So 3.5%2 is an error.
No comments:
Post a Comment