Arithmetic Operations in Arduino Programming Language

Addition, Subtraction, Multiplication, & Division


These operators (+, -, / & *) return the sum, difference, product, & quotient (respectively) of the two operands, so they are binary operator. The operation is conducted using the data type of the operands, so, for example, 9 / 4 gives 2 since 9 and 4 are ints. This also means that the operation can overflow if the result is larger than that which can be stored in the data type (e.g. adding 1 to an int with the value 32,767 gives -32,768). If the operands are of different types, the "larger" type is used for the calculation.
If one of the numbers (operands) are of the type float or of type double, floating point math will be used for the calculation, and the integer type will be suppressed.


y = y + 3;  //add
x = x - 7;  //subtract
i = j * 6;  //multiply
r = r / 5;  //divide


result = value1 + value2;  //add
result = value1 - value2;  //subtract
result = value1 * value2;  //multiply
result = value1 / value2;  //divide


value1 & value2: any variable or constant of a particular type

Programming Tips:

  • Know that integer constants default to int, so some constant calculations may overflow (e.g. 60 * 1000 will yield a negative result, refer to the cyclic property of signed integer).
  • Choose variable sizes that are large enough to hold the largest results from your calculations
  • Know at what point your variable will "roll over" and also what happens in the other direction e.g. (0 - 1) OR (0 - - 32768)
  • For math that requires fractions, use float variables, but be aware of their drawbacks: large size, slow computation speeds ( as they require more storage space compared to integer type & more processing power is consumed when operating them )
  • Use the typecast operator e.g. (int)floating_variable to convert one variable type to another over the run time