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