2

这听起来可能与许多其他问题相似,但我找不到我的答案。我想知道你是否可以切换任何数字的数字系统。例如,

x = 10
y = int(10, 3)

如何将 x 转换为以 3 为底的数字系统?这是我见过的解决方案,但没有奏效。我知道对于二进制、十进制和十六进制系统,有一个单独的函数,但我对其他数字系统一无所知。

4

2 回答 2

4

来自https://stackoverflow.com/a/39884219/11070463,这是一个函数,它将以您想要的任何基数返回十进制数的字符串表示形式:

def baseb(n, b):
    e = n//b
    q = n%b
    if n == 0:
        return '0'
    elif e == 0:
        return str(q)
    else:
        return baseb(e, b) + str(q)
>>> baseb(10,3)
'101'

更好的是,您可以使用 numpy:

>>> import numpy as np
>>> np.base_repr(10, 3)
'101'
于 2020-05-09T22:52:12.797 回答
-1
math.log(yournumber,basenumber)

你可以试试这个吗?

于 2020-05-09T22:51:50.803 回答