2.8. Operators¶
Operators are special symbols that are used to represent simple
computations like addition and multiplication. Most of the operators in
C++ do exactly what you would expect them to do, because they are common
mathematical symbols. For example, the operator for adding two integers
is +
.
The following are all legal C++ expressions whose meaning is more or less obvious:
1 + 1
hour - 1
hour * 60 + minute
minute / 60
Expressions can contain both variables names and integer values. In each case the name of the variable is replaced with its value before the computation is performed.
Addition, subtraction and multiplication all do what you expect, but you might be surprised by division. For example, compile the following program around observe the output.
This program is supposed to print the fraction of the hour that has passed since midnight. You’ll notice that the result isn’t quite what you expect. Read on to find out why!
The first line is what we expected, but the second line is odd. The value of the variable minute is 59, and 59 divided by 60 is 0.98333, not 0. The reason for the discrepancy is that C++ is performing integer division.
When both of the operands are integers (operands are the things operators operate on), the result must also be an integer, and by definition integer division always truncates the result, even in cases like this where the next integer is so close. A floating point result cannot be stored in an integer, so the fractional part must be discarded and only the integer part is returned and displayed.
A possible alternative in this case is to calculate a percentage rather than a fraction:
cout << "Percentage of the hour that has passed: ";
cout << minute * 100 / 60 << '\n';
The result is:
Percentage of the hour that has passed: 98
Again the result is truncated, but at least now the answer is approximately correct. In order to get an even more accurate answer, we could use a different type of variable, called floating-point, that is capable of storing fractional values.
Note
In C++, floating-points are declared as type double
. We’ll get
to that in the next chapter.
-
Q-2: Match the statement to the result, given that x = 10.
Try again!
- x*10
- 100
- x-10
- 0
- 100/x
- 10
- (x+x+x+x+x)*20
- 1000
Q-3: Integer division always .
Q-4:
int num1 = 12;
int num2 = 5;
cout << num1 / num2;
What is printed to the terminal?
Q-5:
int num1 = 10;
int num2 = 48;
cout << num2 / num1;
What is printed to the terminal?
Q-6:
int num1 = 7;
int num2 = 8;
cout << "Decimal:" << num1 / num2;
What is printed after Decimal:
?
Construct a code block that prints the total cost of your meal, including the 6.0% sales tax, after you purchase two orders of fries, three burgers, and a milkshake. Start by initializing the value of sales tax, then the prices of the food. Once you have initialized the variables, you can perform your calculations and save the result in the price variable. At the very end, you will print out the total price.
More to Explore
From cppreference.com