Поймать и вычислить переполнение при умножении двух больших целых чисел
Я ищу эффективное (необязательно стандартное, элегантное и простое в реализации) решение для умножения относительно больших чисел и сохранения результата в одно или несколько целых чисел:
Допустим, у меня есть два 64-битных целых числа, объявленных так:
uint64_t a = xxx, b = yyy;
Когда я делаюa * b
Как я могу обнаружить, если операция приводит к переполнению и в этом случае сохранить перенос где-нибудь?
Обратите внимание, чтоЯ не хочу использовать библиотеку с большими числами так как у меня есть ограничения на способ хранения номеров.