【问题标题】:Class for calculating arbitrarily large numbers?计算任意大数的类?
【发布时间】:2011-02-05 15:46:03
【问题描述】:

我想知道是否可能没有一个类可以提供与内存一样多的准确性。使用重载运算符,以便对其进行算术运算,就好像它是一个普通数字一样。

例如:

BigNumber num;

num = 8;
for(int i = 0; i < 5000000; ++i)
{
   num *= num;
}

谢谢

【问题讨论】:

  • 64 位整数对你来说不够大?
  • @Paul,有很多应用 64 位整数是不够的。
  • @bdonlan:确实,但问题是“与内存一样准确”,虽然含糊不清,但我的意思是如果你有一个 64 位地址空间,他会想要 64 位整数。上面的示例表明 5000000 将被视为“大”。但也许我误解了这个问题?
  • @Paul R:这个例子表明 8 的 5000000 次方是一个很大的数字
  • @Paul 我的意思是,一个 int 占用 4 个字节,所以我可能想要一个消耗 1GB 内存的数字。

标签: c++


【解决方案1】:

为此有很多库,例如 GMP (it provides also a C++ interface)cbignum

您可能会找到尽可能多的此类库。

【讨论】:

    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 2010-09-07
    • 2014-03-06
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多