【发布时间】:2014-11-06 01:54:34
【问题描述】:
我试图使用 GMP 库中的 mpz_mul 函数将两个非常大的 mpz_ts 相乘,每个 2^(10*2^22) bits。
没有分段错误,乘法成功通过。但是,当我将乘法结果输出到文件时,我观察到的只是一串尾随零。
有什么办法可以克服这个限制吗?
【问题讨论】:
-
如何打印到文件?您只使用 gmp 函数,对吗?能贴出代码就更好了!!!
-
我只是使用 gmp_fprintf 将结果输出到 GMP 中的文件。 @Arpit
-
除非您发布代码,否则我不能这样告诉您。尝试在控制台上打印或尝试其他值。调试它。
-
等一下,多少位? 2^(10*2^22) 是 2^41943040。我希望这不是你有多少位。 (更现实地说,我猜你有两个 42MBit 的数字......)
-
你是什么意思,尾随零?如果任何地方都有 1,那么这个数字只能被 2 的大幂整除。
标签: c integer multiplication gmp iec10967