Learn C++ - C++ Arithmetic Operators






C++ has operators for five basic arithmetic calculations: addition, subtraction, multiplication, division, and taking the modulus.

Each of these operators uses two values called operands to calculate a final answer.

Together, the operator and its operands constitute an expression.

For example, consider the following statement:

int result = 4 + 2;

The values 4 and 2 are operands, the + symbol is the addition operator, and 4 + 2 is an expression whose value is 6.

Here are C++'s five basic arithmetic operators:

  • The + operator adds its operands.
  • The - operator subtracts the second operand from the first.
  • The * operator multiplies its operands.
  • The / operator divides its first operand by the second.
  • The % operator produces the remainder of dividing the first by the second.

% operator works only with integers.





Example

The following code does some C++ arithmetic.


#include <iostream> 
using namespace std; 
int main() // www.ja  va  2  s .  co m
{ 
    float hats, my_head; 

    cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point 
    cout << "Enter a number: "; 
    cin >> hats; 
    cout << "Enter another number: "; 
    cin >> my_head; 

    cout << "hats = " << hats << "; my_head = " << my_head << endl; 
    cout << "hats + my_head = " << hats + my_head << endl; 
    cout << "hats - my_head = " << hats - my_head << endl; 
    cout << "hats * my_head = " << hats * my_head << endl; 
    cout << "hats / my_head = " << hats / my_head << endl; 
    return 0; 
} 

The code above generates the following result.





Division Diversions

The behavior of the division operator (/) depends on the type of the operands.

If both operands are integers, C++ performs integer division.

That means any fractional part of the answer is discarded, making the result an integer.

If one or both operands are floating-point values, the fractional part is kept, making the result floating-point.

The following code illustrates how C++ division works with different types of values.


#include <iostream> 
int main() //from w ww  .  j  a va 2s  .  com
{ 
    using namespace std; 
    cout.setf(ios_base::fixed, ios_base::floatfield); 
    cout << "Integer division: 9/4 = " << 9 / 4  << endl; 
    cout << "Floating-point division: 9.0/4.0 = "; 
    cout << 9.0 / 4.0 << endl; 
    cout << "Mixed division: 9.0/4 = " << 9.0 / 4  << endl; 
    cout << "double constants: 1e7/9.0 = "; 
    cout << 1.e7 / 9.0 <<  endl; 
    cout << "float constants: 1e7f/9.0f = "; 
    cout << 1.e7f / 9.0f <<  endl; 
    return 0; 
} 

The code above generates the following result.

The Modulus Operator

The modulus operator returns the remainder of an integer division.

The following code uses % operator to convert lbs to stone.


#include <iostream> 
int main() /*from  w  w  w  . j  a  v  a2  s .  co  m*/
{ 
    using namespace std; 
    const int Lbs_per_stn = 14; 
    int lbs; 

    cout << "Enter your weight in pounds: "; 
    cin >> lbs; 
    int stone = lbs / Lbs_per_stn;      // whole stone 
    int pounds = lbs % Lbs_per_stn;     // remainder in pounds 
    cout << lbs << " pounds are " << stone 
          << " stone, " << pounds << " pound(s).\n"; 
    return 0; 
} 

The code above generates the following result.

The Increment (++) and Decrement (--) Operators

You've already seen two: the increment operator (++), and the decrement operator (--).

Each operator comes in two varieties.

The prefix version comes before the operand, as in ++x.

The postfix version comes after the operand, as in x++.

The two versions have the same effect on the operand, but they differ in terms of when they take place.

The following code demonstrates this difference for the increment operator.


#include <iostream>
using std::cout;//from   w  ww.  j a  v a  2  s  .  co m
int main(){
    int a = 20;
    int b = 20;
    cout << "a   = " << a << ":   b = " << b << "\n";
    cout << "a++ = " << a++ << ": ++b = " << ++b << "\n";
    cout << "a   = " << a << ":   b = " << b << "\n";
    return 0;
}

a++ means "use the current value of a in evaluating an expression, and then increment the value of a."

++b means "first increment the value of b and then use the new value in evaluating the expression."

The code above generates the following result.