整数转字符串的使用和思路

The use and the idea of integer to string conversion

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

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

如果你使用的是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() 这样的非平凡计算。