# 3.5: Some Simple Math

- Page ID
- 35807

C uses the same basic math operators as many other languages. These include `+`

, `−`

, `/`

(divide), and `*`

(multiply). Parentheses are used to group elements and force hierarchy of operations. C also includes `%`

for modulo. Modulo is an integer operation that leaves the remainder of a division, thus 5 modulo 7 is 2.

The divide behaves a little differently with integers than with floats as there can be no remainder. Thus 9 integer divide 4 is 2, not 2.25 as it would be if you were using floats. C also has a series of bit manipulators that we will look at a little later. For higher math operations, you will want to look at the math library (`math.h`

header file). Some examples are `sin()`

, `cos()`

, `tan()`

, `log10()`

(common log) and `pow()`

for powers and roots. Do **not **try to use `^`

as you do on many calculators. `x`

raised to the `y`

power is **not **`x^y`

but rather `pow(x, y)`

. The `^`

operator has an entirely different meaning in C! Recalling what we said earlier about libraries, if you wanted to use a function like `sin()`

in your code, you’d have to tell the compiler where to find the prototype and similar info. At the top of your program you’d add the line:

#include <math.h>

A final caution: The examples above are meant to be clear, but not necessarily the most efficient way of doing things. As we shall see, sometimes the way you code something can have a huge impact on its performance. Given the power of C, expert programmers can sometimes create code that is nearly indecipherable for ordinary people. There is a method behind the apparent madness.