使用和整数到字符串转换的想法

时间:2016-01-30 13:40:11

标签: c++ math largenumber

我尝试用C ++中的大数字来处理。我尝试过的一件事是安装gmp库,但这在我的计算机上无法正常工作(请参阅this post)。所以我想尝试另一种方法,即整数到字符串转换。

但我不明白这一点。让我说清楚。例如,我们处理一个大整数。让我们说2 ^ 1000。例如,当我想计算2 ^ 1000 mod 10时,这是不可能的(目前为止我知道)与c ++的正常库。所以我的问题是:将整数转换为字符串是否可行,如果答案是肯定的: 当我将整数转换为字符串时,如何进行算术运算。

1 个答案:

答案 0 :(得分:0)

如果您使用的是c ++预定义整数类型,则2^1000根本不可能。在您的系统上,最大值应为2^162^32,最大2^64(对于long long)。如果你想这样做,你需要使用(或实现自己 - 我不推荐的)无限精度整数。

您可以使用

轻松地将普通int转换为字符串
... = std::to_string(/*Your int*/);

如果你想要做这样的事情:

amazing_to_string_conversion(1000000000000000000000000000000000000000000000)

在任何C ++实现中都不可能。代码中不存在常数,它会多次,多次溢出。

如果你考虑自己实施它,它可能是K.O.你,因为在分割期间非常复杂的计算和非平凡的计算,如sqrt()。