GNU GMP 中 mpz_class 的 sizeinbase
sizeinbase for mpz_class in GNU GMP
在 C 中我们有 mpz_t
,我们可以通过
访问 base
中的大小
size_t mpz_sizeinbase (const mpz_t op, int base)
在 mpz_class 中,我尝试过
counter.sizeinbase(2);
那没用。
error: ‘mpz_class {aka class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>}’ has no member named ‘sizeinbase’
size_t size = (counter.sizeinbase(2) + CHAR_BIT-1) / CHAR_BIT;
我需要使用 mpz_class 来简化 unordered_map
的代码
mpz_class 是否有类似的功能或解决方法?
使用 get_mpz_t
方法访问包装的 mpz_t
值。
mpz_class x = ...;
size_t xbits = mpz_sizeinbase(x.get_mpz_t(), 2);
至少这在 MPIR 中有效,我认为它在 GMP 中也有效。
在 C 中我们有 mpz_t
,我们可以通过
base
中的大小
size_t mpz_sizeinbase (const mpz_t op, int base)
在 mpz_class 中,我尝试过
counter.sizeinbase(2);
那没用。
error: ‘mpz_class {aka class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>}’ has no member named ‘sizeinbase’
size_t size = (counter.sizeinbase(2) + CHAR_BIT-1) / CHAR_BIT;
我需要使用 mpz_class 来简化 unordered_map
的代码mpz_class 是否有类似的功能或解决方法?
使用 get_mpz_t
方法访问包装的 mpz_t
值。
mpz_class x = ...;
size_t xbits = mpz_sizeinbase(x.get_mpz_t(), 2);
至少这在 MPIR 中有效,我认为它在 GMP 中也有效。