整数转字符串的使用和思路
The use and the idea of integer to string conversion
我尝试在 C++ 中处理大数字。我尝试过的一件事是安装 gmp 库,但这在我的计算机上无法正常工作(请参阅 )。所以我想尝试另一种方法,那就是整数到字符串的转换。
但我不明白这一点。让我说清楚。例如,我们处理一个大整数。比方说 2^1000。例如,当我想计算 2^1000 mod 10 时,使用普通的 c++ 库是不可能的(到目前为止我知道)。所以我的问题是:是否可以将我的整数转换为字符串,如果答案是肯定的:
当我将整数转换为字符串时,如何进行算术运算。
如果你使用的是c++预定义的整数类型,那么2^1000
根本不可能。在您的系统上,最大值应为 2^16
或 2^32
,最大值为 2^64
(对于 long long
)。如果你想这样做,你需要使用(或自己实现 - 我不推荐的)无限精度整数。
您可以使用
轻松地将普通 int
转换为字符串
... = std::to_string(/*Your int*/);
如果你的意思是你想做这样的事情:
amazing_to_string_conversion(1000000000000000000000000000000000000000000000)
这在任何 C++ 实现中都是不可能的。非常数字常量不能存在于代码中,它会溢出很多很多次。
如果你考虑自己实现它,它可能会 K.O。你,因为除法期间的计算非常复杂,而且像 sqrt() 这样的非平凡计算。
我尝试在 C++ 中处理大数字。我尝试过的一件事是安装 gmp 库,但这在我的计算机上无法正常工作(请参阅
但我不明白这一点。让我说清楚。例如,我们处理一个大整数。比方说 2^1000。例如,当我想计算 2^1000 mod 10 时,使用普通的 c++ 库是不可能的(到目前为止我知道)。所以我的问题是:是否可以将我的整数转换为字符串,如果答案是肯定的: 当我将整数转换为字符串时,如何进行算术运算。
如果你使用的是c++预定义的整数类型,那么2^1000
根本不可能。在您的系统上,最大值应为 2^16
或 2^32
,最大值为 2^64
(对于 long long
)。如果你想这样做,你需要使用(或自己实现 - 我不推荐的)无限精度整数。
您可以使用
轻松地将普通int
转换为字符串
... = std::to_string(/*Your int*/);
如果你的意思是你想做这样的事情:
amazing_to_string_conversion(1000000000000000000000000000000000000000000000)
这在任何 C++ 实现中都是不可能的。非常数字常量不能存在于代码中,它会溢出很多很多次。
如果你考虑自己实现它,它可能会 K.O。你,因为除法期间的计算非常复杂,而且像 sqrt() 这样的非平凡计算。