imaxdiv
Calcula o quociente e o resto dos dois valores inteiros de qualquer tamanho como uma única operação.
Sintaxe
imaxdiv_t imaxdiv(
intmax_t numer,
intmax_t denom
);
Parâmetros
numer
O numerador.
denom
O denominador.
Valor retornado
imaxdiv
, chamado com argumentos do tipo intmax_t
, retorna uma estrutura do tipo imaxdiv_t
que compreende o quociente e o resto.
Comentários
A função imaxdiv
divide numer
por denom
e, portanto, calcula o quociente e o resto. A imaxdiv_t
estrutura contém o quociente, intmax_t
quot
, e o resto, intmax_t
rem
. O sinal do quociente é o mesmo que o sinla do quociente matemático. Seu valor absoluto é o maior inteiro menor que o valor absoluto do quociente matemático. Se o denominador for 0, o programa será encerrado com uma mensagem de erro.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
imaxdiv |
<inttypes.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// 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);
}
Quando compilado e então chamado com parâmetros de linha de comando do 9460730470000000 8766
, o código gera esta saída:
The call to imaxdiv(9460730470000000, 8766)
results in a quotient of 1079252848505, and a remainder of 5170