(libc.info.gz) Integer Division
Info Catalog
(libc.info.gz) Integers
(libc.info.gz) Arithmetic
(libc.info.gz) Floating Point Numbers
20.2 Integer Division
=====================
This section describes functions for performing integer division. These
functions are redundant when GNU CC is used, because 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)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | POSIX Safety
Concepts.
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)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | POSIX Safety
Concepts.
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_t'.
-- Data Type: lldiv_t
This is a structure type used to hold the result returned by the
'lldiv' function. It has the following members:
'long long int quot'
The quotient from the division.
'long long int rem'
The remainder from the division.
(This is identical to 'div_t' except that the components are of
type 'long long int' rather than 'int'.)
-- Function: lldiv_t lldiv (long long int NUMERATOR, long long int
DENOMINATOR)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | POSIX Safety
Concepts.
The 'lldiv' function is like the 'div' function, but the arguments
are of type 'long long int' and the result is returned as a
structure of type 'lldiv_t'.
The 'lldiv' function was added in ISO C99.
-- Data Type: imaxdiv_t
This is a structure type used to hold the result returned by the
'imaxdiv' function. It has the following members:
'intmax_t quot'
The quotient from the division.
'intmax_t rem'
The remainder from the division.
(This is identical to 'div_t' except that the components are of
type 'intmax_t' rather than 'int'.)
See Integers for a description of the 'intmax_t' type.
-- Function: imaxdiv_t imaxdiv (intmax_t NUMERATOR, intmax_t
DENOMINATOR)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | POSIX Safety
Concepts.
The 'imaxdiv' function is like the 'div' function, but the
arguments are of type 'intmax_t' and the result is returned as a
structure of type 'imaxdiv_t'.
See Integers for a description of the 'intmax_t' type.
The 'imaxdiv' function was added in ISO C99.
Info Catalog
(libc.info.gz) Integers
(libc.info.gz) Arithmetic
(libc.info.gz) Floating Point Numbers
automatically generated by
info2html