std::div, std::ldiv, std::lldiv

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Common mathematical functions
Functions
Basic operations
divldivlldivimaxdiv
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Exponential functions
(C++11)
(C++11)
(C++11)
(C++11)
Power functions
(C++11)
(C++11)
Trigonometric and hyperbolic functions
(C++11)
(C++11)
(C++11)
Error and gamma functions
(C++11)
(C++11)
(C++11)
(C++11)
Nearest integer floating point operations
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Floating point manipulation functions
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Classification/Comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Macro constants
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Defined in header <cstdlib>
std::div_t     div( int x, int y );
std::ldiv_t    div( long x, long y );
std::lldiv_t   div( long long x, long long y );
(since C++11)
std::ldiv_t   ldiv( long x, long y );
std::lldiv_t lldiv( long long x, long long y );
(since C++11)
Defined in header <cinttypes>
std::imaxdiv_t div( std::intmax_t x, std::intmax_t y );
(since C++11)
std::imaxdiv_t imaxdiv( std::intmax_t x, std::intmax_t y );
(since C++11)

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 C++11)

The quotient is the result of the expression x/y. The remainder is the result of the expression x%y.

(since C++11)

Contents

[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] Notes

Until C++11, 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 std::div.

[edit] See also

remainder of the floating point division operation
(function)
C documentation for div