gmpy2 mpz类型在不同的基础上

时间:2015-10-03 21:40:23

标签: python gmpy

我正在尝试使用MPZ来更改数字的基数,但是当我尝试mpz(16[, base=16])时,我得到了无效的语法错误。

如果我使用mpz(0x16),则返回基数为10的数字22。是否可以将MPZ类型存储在不同的基础中?

1 个答案:

答案 0 :(得分:0)

mpz类型始终在内部将值存储为二进制。可选的base关键字用于字符串转换。一些例子:

>>> mpz("10", base=16)
mpz(16)
>>> mpz("10", base=32)
mpz(32)

要将mpz转换为任意基础中的字符串,请使用digits()方法。

>>> mpz("10", base=32).digits(16)
'20'
>>> mpz("10", base=32).digits(32)
'10'
>>> mpz("10", base=32).digits(2)
'100000'

关于语法错误,帮助文本[, base=0]中的方括号表示关键字base是可选的,默认值为0。不应输入方括号。