我正在使用gmp(大整数库)
我有一个值 b 我需要检查它的第一个m位是否为零。
我知道如果我将 b 转换为字符串我可以进行检查,但效率不高。
问题1:我需要知道库是否有一个返回大整数的第一个m位的函数。
要编码一个大整数 c ,我将其转换为字符串,然后将其与m个零连接,例如想象二进制中的c是11,然后我编码为:1100000000
问题2 :我需要知道是否可以使用库的功能更快地进行编码
答案 0 :(得分:0)
GMP库提供了大量的位操作原语。请查看文档中的Logical and Bit Manipulation Functions章节。
对于您的第一个问题,我认为您要使用mpz_tstbit
。对于您的第二个问题,听起来您正在尝试执行一些位移,这可以通过mpz_mul_2exp
和mpz_*_*_2exp
函数来完成。