将 GMP 整数转换为以 N 为基数的整数
GMP 允许打印高达 62 基数的 mpz_t,但我想将一个数字表示为任何基数 N,为此我首先需要生成一个整数数组(假设我将自己限制为基数 2 ^ 64),所以一个unsigned long
数组可以做到这一点。
例如,如果我想获取任何整数并将其转换为基数 792,我不能直接将其放入字符串中,我必须先创建一个整数数组。
GMP 中是否有现有的代码,比如我需要学习的某种数学,或者我应该开始编码吗?
聚苯乙烯 我知道使用术语“基”是完全无关的,而我可以使用“线性向量空间”,所以它使转换毫无意义,但是unicode中有很多符号(unicode 3.2中的95,221),所以我仍然可以找到一个用单一符号来表示的方式。
GMP allows to print a mpz_t up to base 62, but I want to represent a number into any base N, and for this I first need to generate an array of integers (let us say I will limit myself to base 2 ^ 64), so an array of unsigned long
might do it.
For example if I want to take any integer and convert it to base 792, I can't put it into a string directly, I have to make an array of integers first.
Is there existing code for this in GMP, like some math of some kind I need to learn about or should I start coding it ?
P.S.
I know it's totally irrelevant to employ the term 'base' while I could use 'linear vector space', so it makes the conversion pointless, but there a lot of symbols in unicode (95,221 in unicode 3.2), so I could still find a way to represent those with single symbols.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在内部,GMP 的函数直接或间接调用
mpn
层 - 记录如下:http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions
mpn_get_str
仅支持最多 256 个基数。所以我不认为你可以走得更高,除非你编写自己的基本转换(这根本不是微不足道的)。Internally, GMP's functions directly or indirectly call the
mpn
layer - which are documented here:http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions
The
mpn_get_str
only supports bases up to 256. So I don't think you can go higher unless you write your own base conversion (which is not trivial at all).