You are here

Overview of Integer Division and Modulus

19 January, 2016 - 11:41

By the time we reach adulthood, we normally think of division as resulting in an answer that might have a fractional part (a floating-point data type). This type of division is known as floating-point division. However, division when both operands are of the integer data type acts differently on most computers and is called: integer division. Within the C++ programming language the following expression does not give the answer of 2.75 or 2(3/4).

Example 4.6

11 / 4

Because both operands are of the integer data type the evaluation of the expression (or answer) would be 2 with no fractional part (it gets thrown away). Again, this type of division is call integer division and it is what you learned in grade school the first time you learned about division.

Definition 4.8: integer division

Division with no fractional parts.

Figure 4.1 Integer division as learned in grade school.  

In the real world of data manipulation there are some things that are always handled in whole units or numbers (integer data type). Fractions just don't exist. To illustrate our example: I have // dollar coins to distribute equally to my 4 children. How many do they each get? Answer is 2 with me still having 3 left over (or with 3 still remaining in my hand). The answer is not 2 i each or 2.75 for each child. The dollar coins are not divisible into fractional pieces. Don't try thinking out of the box and pretend you're a pirate. Using an axe and chopping the 3 remaining coins into pieces of eight. Then, giving each child 2 coins and 6 pieces of eight or 2 6/8 or 2 i or 2.75. If you do think this way, I will change my example to cans of tomato soup. I dare you to try and chop up three cans of soup and give each kid i of a can. Better yet, living things like puppy dogs. After you divide them up with an axe, most children will not want the i of a dog.

What is modulus? It's the other part of the answer for integer division. It's the remainder. Remember in grade school you would say, "Eleven divided by four is two remainder three." In C++ programming language the symbol for the modulus operator is the percent sign (%).

Example 4.7

11% 4

Thus, the answer or value of this expression is 3 or the remainder part of integer division.

Definition 4.9: modulus

The remainder part of integer division. Many compilers require that you have integer operands on both sides of the modulus operator or you will get a compiler error. In other words, it does not make sense to use the modulus operator with floating-point operands. Don't let the following items confuse you.

Example 4.8

6 / 24 which is different from 6 % 24

How many times can you divide 24 into 6? Six divided by 24 is zero. This is different from: What is the remainder of 6 divided by 24? Six, the remainder part given by modulus.

Exercise 4.6.1

Evaluate the following division expressions:

  1. 14 / 4
  2. 5 / 13
  3. 7 / 2.0

Exercise 4.6.2

Evaluate the following modulus expressions:

  1. 14 % 4
  2. 5 % 13
  3. 7 % 2.0