boost::multi precision::cpp_int 的作用类似于 unsigned long long

Aay*_*san 3 c++ boost boost-multiprecision

所以我有一个编程作业,其中我必须处理 64 位数字。我目前正在使用 boost::multi precision::cpp_int 库,但我无法在大量数据上使用它。

例如-

#include <boost/multiprecision/cpp_int.hpp>

int main()
{
    boost::multiprecision::cpp_int n1 =123341257612045876129038576124390847381295732;   
}
Run Code Online (Sandbox Code Playgroud)

这给出了代码太长的错误。经过实验,似乎 cpp_int (应该包含你想要的任意大的数字)就像一个 unsigned long long (如上图所示),我该如何解决这个问题?

seh*_*ehe 6

使用字符串构造函数,因为否则无法在 C++ 中表达初始值设定项。

\n

住在科里鲁

\n
#include <boost/multiprecision/cpp_int.hpp>\n#include <iostream>\n\nint main() {\n    boost::multiprecision::cpp_int n1("123341257612045876129038576124390847381295732");\n    n1 *= n1;\n    n1 *= n1;\n\n    std::cout << n1 << "\\n";\n}\n
Run Code Online (Sandbox Code Playgroud)\n

印刷

\n
231437371927256216552064578371685752056581253909626001052591740261122589692668963795268703088073326299461305156397520102373182511147316463882992573577585984095769469664077598976\n
Run Code Online (Sandbox Code Playgroud)\n

也就是 ~2.31 \xc3\x97 10^176

\n