2.9. The Modulus OperatorΒΆ
Not all math operators in C++ work on any numeric data type.
The modulus operator works on integers (and integer expressions) only and
yields the remainder when the first operand is divided by the second.
In C++, the modulus operator is a percent sign, %
. The syntax is exactly
the same as for other operators:
This program shows the difference between the division operator and the modulus operator.
The first operator, integer division, yields 2. The second operator yields 1. Thus, 7 divided by 3 is 2 with 1 left over.
Although modulus is a curiosity in a typical algebra class,
it has many useful applications in algorithms.
The modulus operator turns out to be surprisingly useful. For example,
you can check whether one number is divisible by another: if x % y
is
zero, then x is divisible by y.
Also, you can use the modulus operator to extract the rightmost digit or
digits from a number. For example, x % 10
yields the rightmost digit of
x (in base 10). Similarly x % 100
yields the last two digits.
- Use x % 2, and if the result is 0, it is odd.
- If you divide a number by two and it has no remainder, that means it is an even number!
- Use x % 2, and if the result is 1, it is odd.
- If you divide a number by two and it has a remainder of one, that means it is an odd number!
- Use x / 2, and if the result is 0, it is odd.
- Dividing a number by two won't give us the information we want.
- Use x / 2, and if the result is 1, it is odd.
- Dividing a number by two won't give us the information we want.
Q-2: How do you know whether the variable x is odd?
-
Q-3: Match the modulo expression to its result.
Try again!
- 3 % 2
- 1
- 2 % 3
- 2
- 6 % 2
- 0
- 9 % 6
- 3