This section describes functions for performing integer division. These functions are redundant in the GNU C library, since in GNU C the `/' operator always rounds towards zero. But in other C implementations, `/' may round differently with negative arguments. div
and ldiv
are useful because they specify how to round the quotient: towards zero. The remainder has the same sign as the numerator.
These functions are specified to return a result r such that the value r.quot*denominator + r.rem
equals numerator.
To use these facilities, you should include the header file `stdlib.h' in your program.
div
function. It has the following members:
int quot
int rem
div
computes the quotient and remainder from the division of numerator by denominator, returning the result in a structure of type div_t
. If the result cannot be represented (as in a division by zero), the behavior is undefined.
Here is an example, albeit not a very useful one.
div_t result; result = div (20, -6);
Now result.quot
is -3
and result.rem
is 2
.
ldiv
function. It has the following members:
long int quot
long int rem
(This is identical to div_t
except that the components are of type long int
rather than int
.)
ldiv
function is similar to div
, except that the arguments are of type long int
and the result is returned as a structure of type ldiv
.