Arithmetic operators in C

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;
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.
Step 1: x=3+20/2-7;
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
+,- 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.
More examples:
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
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.
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
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

Featured Post

Core and Advance Python

                      Language Fundamentals