将 GMP 整数转换为以 N 为基数的整数

发布于 2024-12-09 00:20:04 字数 352 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌伤ぢ 2024-12-16 00:20:04

在内部,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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文