将GMP整数转换为基本N整数

时间:2011-10-08 23:10:16

标签: c++ c math biginteger bignum

GMP允许将mpz_t打印到基数62,但我想在任何基数N中表示一个数字,为​​此我首先需要生成一个整数数组(让我们说我将自己限制为基数2 ^ 64),所以unsigned long的数组可能会这样做。

例如,如果我想取任何整数并将其转换为基数792,我不能直接将它放入字符串中,我必须首先创建一个整数数组。

GMP中是否有现有的代码,比如我需要学习的某种数学,或者我应该开始编码吗?

P.S。 我知道在使用“线性向量空间”时使用术语“基础”是完全无关紧要的,因此它使转换毫无意义,但unicode中有很多符号(unicode 3.2中有95,221),所以我仍然可以找到用单个符号表示的方式。

1 个答案:

答案 0 :(得分:2)

在内部,GMP的功能直接或间接调用mpn层 - 这里记录了:

http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions

mpn_get_str仅支持最高256的基数。所以我认为除非你编写自己的基本转换(这根本不是微不足道的),否则你可以更高。

相关问题