【发布时间】:2018-12-10 08:53:11
【问题描述】:
我用gmp库写了一个C之类的程序
len = mpz_sizeinbase(res, 10);
当 res = 9 时,它给了我 2。所以我检查了手册,它说
size_t mpz_sizeinbase (mpz_t op, int base)
返回在给定基数中以位数测量的 op 大小。 base 可以在 2 到 62 之间变化。 op 的符号被忽略,只使用绝对值。结果将是精确的或 1 太大。如果 base 是 2 的幂,则结果总是准确的。如果 op 为零,则返回值始终为 1。
我只是想知道为什么这个函数设计有这个泄漏?为什么不能准确?
我发现了一些类似的问题:
【问题讨论】:
-
The implementation and the comment above 可能会遮住一些光线......