div, ldiv, lldiv

From cppreference.com
< c | numeric | math
 
 
 
Common mathematical functions
Functions
Basic operations
abs
labs
llabs
imaxabs



(C99)
fabs
div
ldiv
lldiv
imaxdiv



(C99)
fmod
remainder (C99)
remquo (C99)
fma (C99)
fmax (C99)
fmin (C99)
fdim (C99)
nan
nanf
nanl
(C99)
(C99)
(C99)
Exponential functions
exp
exp2 (C99)
expm1 (C99)
log
log10
log1p (C99)
log2 (C99)
Power functions
sqrt
cbrt (C99)
hypot (C99)
pow
Trigonometric and hyperbolic functions
sinh
cosh
tanh
asinh (C99)
acosh (C99)
atanh (C99)
Error and gamma functions
erf (C99)
erfc (C99)
lgamma (C99)
tgamma (C99)
Nearest integer floating point operations
ceil
floor
round
lround
llround
(C99)
(C99)
(C99)
trunc (C99)
nearbyint (C99)
rint
lrint
llrint
(C99)
(C99)
(C99)
Floating point manipulation functions
ldexp
scalbn
scalbln
(C99)
(C99)
ilogb (C99)
logb (C99)
Classification
fpclassify (C99)
isfinite (C99)
isinf (C99)
isnan (C99)
isnormal (C99)
signbit (C99)
Macro constants
 
Defined in header <stdlib.h>
div_t     div( int x, int y );
ldiv_t    ldiv( long x, long y );
lldiv_t   lldiv( long long x, long long y );
(since C99)
Defined in header <inttypes.h>
imaxdiv_t imaxdiv( intmax_t x, intmax_t y );
(since C99)

Computes the quotient (the result of the expression x/y) and remainder (the result of the expression x%y) simultaneously. (since C99)

Computes quotient and remainder simultaneously. The quotient is the algebraic quotient with any fractional part discarded (truncated towards zero). The remainder is such that quot * y + rem == x. (until c99)

Contents

[edit] Notes

Until C99, the rounding direction of the quotient and the sign of the remainder in the built-in division and remainder operators was implementation-defined if either of the operands was negative, but it was well-defined in div and ldiv.

[edit] Parameters

x, y - integer values

[edit] Return value

Structure of type div_t, ldiv_t, ldiv_t, imaxdiv_t defined as:

struct div_t {
    int quot;   // The quotient
    int rem;    // The remainder
};
 
struct ldiv_t {
    long quot;   // The quotient
    long rem;    // The remainder
};
 
struct lldiv_t {
    long long quot;   // The quotient
    long long rem;    // The remainder
};
 
struct imaxdiv_t {
    std::intmax_t quot;   // The quotient
    std::intmax_t rem;    // The remainder
};

[edit] See also

remainder of the floating point division operation
(function)