将GMP整数转换为N进制整数
Converting a GMP integer to a base N integer
GMP允许以62为基数打印mpz_t,但我想将一个数字表示为任何进制N,为此我首先需要生成一个整数数组(让我们说我将限制为2 ^ 64),所以unsigned long
的数组可能会做到这一点。
例如,如果我想取任意整数并将其转换为以792为基数,我不能直接将其放入字符串中,我必须首先创建一个整数数组。
GMP中是否存在此代码,例如我需要学习的某种数学,或者我应该开始编码吗?
注:我知道使用术语"基数"是完全不相关的,而我可以使用"线性向量空间",所以它使转换毫无意义,但是在unicode中有很多符号(unicode 3.2中的95,221),所以我仍然可以找到一种方法来表示那些用单个符号。
内部,GMP的功能直接或间接调用mpn
层-在这里记录:
http://gmplib.org/manual/Low_002dlevel-Functions.html Low_002dlevel-Functions
mpn_get_str
最多支持256个基数。所以我不认为你可以走得更高,除非你写你自己的基本转换(这不是微不足道的)。
相关文章:
- 努力将整数转换为链表。不知道我在这里做错了什么
- 如何在C++中将整数转换为其数字数组
- 如果整数与指针大小相同,则重新解释将整数转换为指针双射是否具有双射作用?
- 将最小值整数转换为无符号长整型
- 为什么我们不能将使用异或运算找到的整数转换为字符?
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 将74位整数转换为以31为底的整数
- 独立于实现的浮点/整数转换
- 以最少的步骤将给定整数转换为另一个整数
- 浮点到整数转换出错(即使浮点数已经是整数)
- 了解双精度转换与整数转换中的整数与截断关系
- 禁止具有精度损失的整数转换
- 将任意整数转换为 void*
- 将 32 位大端有符号整数转换为有符号小端整数
- char a[0] 使用 itoa() 将整数转换为字符串的目的
- 使用函数时从整数转换为字符串
- 尝试从整数转换为字符串的月份
- 如何在C++中将整数转换为字节,以便 Unity 在通过 UDP 传输后能够理解它们
- 如何将 Q 格式的整数转换为浮点数(反之亦然)
- 如何避免字符串到整数转换情况下的无效参数异常