Go to the first, previous, next, last section, table of contents.

## Integer Division

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.

Data Type: div_t
This is a structure type used to hold the result returned by the `div` function. It has the following members:

`int quot`
The quotient from the division.
`int rem`
The remainder from the division.

Function: div_t div (int numerator, int denominator)
This function `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`.

Data Type: ldiv_t
This is a structure type used to hold the result returned by the `ldiv` function. It has the following members:

`long int quot`
The quotient from the division.
`long int rem`
The remainder from the division.

(This is identical to `div_t` except that the components are of type `long int` rather than `int`.)

Function: ldiv_t ldiv (long int numerator, long int denominator)
The `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`.

Go to the first, previous, next, last section, table of contents.