Copyright (C) 2000-2012 |
GNU Info (libc.info)Integer DivisionInteger 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) 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_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) 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 Note: Integers for a description of the `intmax_t' type. - Function: imaxdiv_t imaxdiv (intmax_t NUMERATOR, intmax_t DENOMINATOR) 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 Note: Integers for a description of the `intmax_t' type. The `imaxdiv' function was added in ISO C99. automatically generated by info2www version 1.2.2.9 |