gpt4 book ai didi

c - 如何使用 C 中的 GMP 库将 mpz_t 分成两部分?

转载 作者:行者123 更新时间:2023-11-30 18:09:23 28 4
gpt4 key购买 nike

在c上使用GMP,我有一个十进制形式的大整数“mpz_t n”,我怎样才能将它分成两部分?事实上,这两个部分在二进制中应该具有相同的长度。

例如,也许我可以将n转换为112位的二进制,然后我想将其切成2个56位的部分。

谢谢

最佳答案

我会使用 temp = mpz_sizeinbase(n,2) 获取原始数字中的位数,然后使用 mpz_tdiv_q_2exp(q, n, temp>>1) 和 mpz_tdiv_r_2exp(r, n, temp>>1)得到原始数字的上半部分和下半部分。

根据您想要如何处理奇数位长度,您可能需要调整 temp>>1 的计算。

HTH,案例

关于c - 如何使用 C 中的 GMP 库将 mpz_t 分成两部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380415/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com