c++ - 如何在 C++ 中处理大数据元素?

标签 c++ pow

我想对pow(2.0,(n-8))的返回值进行除法通过 86399。 问题是10 <= n <= 100000000 .

如何处理这么大的返回值?

我在 Ubuntu 11.10 64 位上,使用 C++ 4.0.0-8

最佳答案

你不能,除非你使用大数字库。 64位不能容纳那么大的数字。即便如此,也可能需要一段时间。 2^(86392) 大约有 26000 位数字。

如果您只想获得模数,可以使用一些不错的算法。参见 http://en.wikipedia.org/wiki/Modular_exponentiation .

如果你还想尝试 bignums,请查看 http://gmplib.org/ .

关于c++ - 如何在 C++ 中处理大数据元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034747/

相关文章:

c++ - QT Moc文件的改变大小写

c++ - 如何强制 pow(float, int) 返回 float

c - gcc 和 math.h 的奇怪行为?

python - python中的负战俘

以 Integer.MIN_VALUE 作为指数的 Java pow 实现

c# - 如何从 C# 调用具有 void* 回调和对象参数的 C++ Dll 中的函数

c++ - 在 C++ 中,引用总是更好的选择吗?

C 的 pow() 不适用于可变指数

c++ - friend 类指向不同命名空间中的同名类

c# - 从 C++ 库方法返回的 "char*"获取 C# 字符串?