Capture e calcule o estouro durante a multiplicação de dois inteiros grandes
Eu estou procurando uma solução eficiente (opcionalmente padrão, elegante e fácil de implementar) para multiplicar números relativamente grandes e armazenar o resultado em um ou vários inteiros:
Vamos dizer que eu tenho dois inteiros de 64 bits declarados assim:
uint64_t a = xxx, b = yyy;
Quando eu façoa * b
, como posso detectar se a operação resulta em um estouro e, nesse caso, armazenar o carry em algum lugar?
Por favor note queEu não quero usar nenhuma biblioteca de números grandes desde que eu tenho restrições na maneira como eu armazeno os números.