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.