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