Language | Libraries | Comparison

% (modulo)

Description

Returns the remainder from an integer division

Syntax

result = value1 % value2

Parameters

value1: a byte, char, int, or long

value2: a byte, char, int, or long

Returns

The remainder from an integer division.

Examples

x = 7 % 5;   // x now contains 2
x = 9 % 5;   // x now contains 4
x = 5 % 5;   // x now contains 0
x = 4 % 5;   // x now contains 4

The modulo operator is useful for tasks such as making an event occur at regular periods or making a memory array roll over

Example Code

// check a sensor every 10 times through a loop
void loop(){
i++;
if ((i % 10) == 0){
   x = analogRead(sensPin);   // read sensor every ten times through loop
   }
/ ...
}

// setup a buffer that averages the last five samples of a sensor

int senVal[5];  // create an array for sensor data
int i, j;       // counter variables
long average;   // variable to store average
...

void loop(){
// input sensor data into oldest memory slot
sensVal[(i++) % 5] = analogRead(sensPin); 
average = 0;
for (j=0; j<5; j++){
average += sensVal[j];   // add up the samples
}
average = average / 5;  // divide by total

Tip

the modulo operator will not work on floats

See also

/ ?

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.