任意のサイズの 2 つの整数値の商および剰余を単一の操作として計算します。Computes the quotient and the remainder of two integer values of any size as a single operation.


imaxdiv_t imaxdiv(
   intmax_t numer,
   intmax_t denom


分子。The numerator.

デ omdenom
分母。The denominator.

戻り値Return Value

imaxdiv型の引数を指定して呼び出されたintmax_tは、商と剰余で構成されるimaxdiv_t型の構造体を返します。imaxdiv called with arguments of type intmax_t returns a structure of type imaxdiv_t that comprises the quotient and the remainder.


Imaxdiv関数は、数値デ omで除算し、商と剰余を計算します。The imaxdiv function divides numer by denom and thereby computes the quotient and the remainder. Imaxdiv_t構造体には、商、 intmax_t quot、および剰余 ( intmax_t rem) が含まれています。商の符号は、数学的な商の符号と同じです。The imaxdiv_t structure contains the quotient, intmax_t quot, and the remainder, intmax_t rem. The sign of the quotient is the same as that of the mathematical quotient. この絶対値が最も大きい整数であり、商の絶対値よりも小さくなります。Its absolute value is the largest integer that is less than the absolute value of the mathematical quotient. 分母が 0 の場合、プログラムはエラー メッセージにより終了します。If the denominator is 0, the program terminates with an error message.


ルーチンによって返される値Routine 必須ヘッダーRequired header
imaxdivimaxdiv <inttypes.h><inttypes.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


// crt_imaxdiv.c
// Build using: cl /W3 /Tc crt_imaxdiv.c
// This example takes two integers as command-line
// arguments and calls imaxdiv to divide the first
// argument by the second, then displays the results.

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>

int main(int argc, char *argv[])
   intmax_t x,y;
   imaxdiv_t div_result;

   x = atoll(argv[1]);
   y = atoll(argv[2]);

   printf("The call to imaxdiv(%lld, %lld)\n", x, y);
   div_result = imaxdiv(x, y);
   printf("results in a quotient of %lld, and a remainder of %lld\n\n",
          div_result.quot, div_result.rem);

このコードをビルドしてからコマンド ライン パラメーターで 9460730470000000 8766 を指定した呼び出した場合、次の出力が生成されます。When built and then called with command line parameters of 9460730470000000 8766, the code generates this output:

The call to imaxdiv(9460730470000000, 8766)
results in a quotient of 1079252848505, and a remainder of 5170

関連項目See also

浮動小数点サポートFloating-Point Support
ldiv、lldivldiv, lldiv