gmpy2 mpz типа в другой базе

Я пытаюсь использовать MPZ, чтобы изменить базу числа, но когда я пытаюсь mpz(16[, base=16]) Я получаю неверную синтаксическую ошибку.

Если я использую mpz(0x16), возвращает базовое число 10 (22). Можно ли хранить тип MPZ на другой базе?

1 ответ

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, Квадратные скобки не должны вводиться.

Другие вопросы по тегам