Przepełnienie i obliczenie przepełnienia podczas mnożenia dwóch dużych liczb całkowitych

Szukam wydajnego (opcjonalnie standardowego, eleganckiego i łatwego do zaimplementowania) rozwiązania do mnożenia stosunkowo dużych liczb i przechowywania wyniku w jednej lub kilku liczbach całkowitych:

Powiedzmy, że mam dwie 64-bitowe liczby całkowite zadeklarowane w ten sposób:

uint64_t a = xxx, b = yyy; 

Kiedy robięa * b, w jaki sposób mogę wykryć, czy operacja powoduje przepełnienie, aw tym przypadku przechowywanie gdzieś?

Proszę to zanotowaćNie chcę używać żadnej dużej biblioteki ponieważ mam ograniczenia w sposobie przechowywania liczb.

questionAnswers(9)

yourAnswerToTheQuestion