Arithmetic operators in C

Arithmetic operators are used to perform basic arithmetic operations. Operations like addition, subtraction, multiplication, division and modulo division.

C supports five arithmetic operators.

OperatorDescription
+Unary plus or binary addition
-Unary minus or binary subtraction
*Multiplication
/Division
%Modulo division (Evaluates remainder)

Important Note: There is no exponential operator in C programming language. Many beginners considers ^ (hat symbol) as an exponential operator. However, ^ is a bitwise XOR operator.

Unary plus and unary minus

The + and - arithmetic operators exhibits in two variants unary plus/minus and binary addition/subtraction. Unary plus and minus takes single operand and used to alter the sign of a real or integer type.

For example:

a = -5;         // a contains -5
b = +10.65;     // b contains +10.65
c = -a;	        // c contains -(-5) => +5
d = -b;	        // d contains –(+10.65) => -10.65

By default, every real or integer type is positive. Therefore, use of unary plus operator is optional. Means b = +10.65; is equivalent to b = 10.65;.

Binary arithmetic operators

Binary arithmetic operator are used to perform basic arithmetic operations. It accepts two operand.

Suppose two integer variables x and y with initial values
int x=10, y=6;

After performing following binary arithmetic operations.

x + y = 16
x - y = 4
x * y = 60	
x / y = 1 	(Integer division evaluates to integer trimming fractional part)
x % y = 4	(Remainder of the integer division)

Integer division

In computer programming divisions are performed differently. Apparently there are two types of division.

  1. Integer division
  2. Real division

C performs integer division if both operands are integer type. Integer division always evaluates to an integer discarding the fractional part.

C performs real division if any of the two operands are real type (either float or double). Real division evaluates to a real value containing integer as well as fractional part.

Consider the below division table for a clear view of division in C.

OperationResultDivision type
5 / 22Integer division
5.0 / 22.5Real division
5 / 2.02.5Real division
5.0 / 2.02.5Real division

Modulo division

Modulo division evaluates remainder after performing division of two numbers. In C programming, we perform modulo division using % operator. Many texts refers modulo operator as modulus operator.

Consider the below modulo division table for a clear view of modulo division operations in C.

OperationResult
8 % 20
5 % 32
3 % 73
-3 % 7-3
5 % -21
-8 % -3-2
2.5 % 2Error
8 % 2.5Error
5.0 % 2.5Error

Important note:

  • Modulo division is only possible with integer operands. It causes compilation error with float types.
  • Modulo operator returns sign of the first operand.