【问题标题】:Type for 64 digit number [duplicate]输入 64 位数字 [重复]
【发布时间】:2017-08-03 10:15:56
【问题描述】:

哪种 C++ 类型足够大,可以表示 64 位十进制数,例如

3141592653589793238462643383279502884197169399375105820974944592 ?

【问题讨论】:

  • @KobyDouek 64 数字,而不是比特。
  • 可能没有。 long long 至少需要 64 个,但理论上可以更长。你必须检查你的编译器手册。
  • 搜索和研究任意或多精度数库。
  • 不能解旗的不幸

标签: c++ bigint


【解决方案1】:

没有什么“开箱即用”的:你需要一个 64 * log(10) / log(2) 位的整数类型。 (未来的std::int256_t 就足够了!)

如果您不打算以任何方式对数字进行数学运算,请使用std::string

否则,请考虑使用 Boost 中的大数库:www.boost.org。这些东西习惯于将其纳入未来的 C++ 标准。请注意

#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

产生int256_t 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2021-06-26
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多