Python-如何将任意基数的整数转换为字符串?
Python允许通过给定基数的字符串通过以下方式轻松创建整数
int(str, base).
我想执行相反的操作:从integer创建一个字符串,即我想要一些函数int2base(num, base),例如:
int(int2base(x, b), b) == x
函数名称/参数顺序不重要。
对于任何数量x和底座b是int()
会接受的。
这是一个易于编写的函数:实际上,比在此问题中对其进行描述更容易。但是,我觉得我必须丢失一些东西。
我知道的功能bin
,oct
,hex
,但我不能使用他们的几个原因:
这些功能在旧版本的Python上不可用,我需要与这些版本兼容(2.2)
我想要一个通用的解决方案,可以针对不同的基础使用相同的方法
我想允许除2、8、16以外的其他基数
回答:
如果您需要与Python的旧版本兼容,则可以使用gmpy(它确实包含快速,完全通用的从int到字符串的转换功能,并且可以针对此类旧版本进行构建-您可能需要尝试使用较旧的版本,因为最近的版本尚未针对过时的Python和GMP版本进行过测试(仅是最新版本),或者为了速度较慢但更加方便,使用Python代码-例如,最简单的方法是:
import stringdigs = string.digits + string.ascii_letters
def int2base(x, base):
if x < 0:
sign = -1
elif x == 0:
return digs[0]
else:
sign = 1
x *= sign
digits = []
while x:
digits.append(digs[int(x % base)])
x = int(x / base)
if sign < 0:
digits.append('-')
digits.reverse()
return ''.join(digits)
以上是 Python-如何将任意基数的整数转换为字符串? 的全部内容, 来源链接: utcz.com/qa/423820.html