在 Python 中,int() 函数可以轻松地从具有指定基数的字符串创建整数。然而,将整数转换为字符串的逆操作可能很棘手。我们的目标是开发一个通用解决方案 int2base(num, base),它满足条件:
int(int2base(x, b), b) == x
这是一个处理任意基数的令人惊讶的简单解决方案:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
这个函数将数字 n 转换为基数 b 并返回数字列表。要将大数转换为基数 577,例如:
numberToBase(67854 ** 15 - 102, 577)
它将以列表形式为您提供正确的结果:
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
提供的解决方案表明,有时,当内置函数缺乏所需功能时,需要自定义函数。在这里,int2base() 通过以下方式克服了限制:
以上是如何在 Python 中高效地将整数转换为任意基数的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!