#include <iostream>
#include <limits>
int main(void) {
cout << std::numeric_limits<uint64_t>::max();
return 0;
}
Код выше выводит (на моей машине) 18446744073709551615
, но я пытаюсь умножить числа, которые имеют по крайней мере 25 цифр. Как правильно обрабатывать умножение 2 целых чисел, которые больше, чем uint64
?
Вам нужно использовать библиотеку, которая обрабатывает большие числа. Вот некоторые из них:
Многофункциональная арифметическая библиотека GNU
Большая целочисленная библиотека C ++
Boost.Multiprecision
http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/index.html
Других решений пока нет …