我在C++中有一个32位整数的向量(可变大小,连续内存;就像一个C数组),表示基数4294967296中的数字.我想在基数10中打印它.
这些数字可能非常大,占用几兆内存.
在性能方面,最好的方法是什么?我可以使用GMP来做到这一点吗?
是的,您可以使用GMP.您正在寻找的功能是mpn_get_str:
http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions
现在唯一的问题是大小mp_limb_t.它取决于平台,可以是32位整数,也可以是64位整数.
mpn_get_str.或者,使用mpz整数类可能更容易.导入您的整数数组到一个大的整数,然后打印它在基地10退了出去.