如何将基中的整数转换为字符串?Python允许通过以下方式轻松地从给定基的字符串创建整数int(str, base).我想做相反的事情:从整数创建字符串,也就是我想要一些功能int2base(num, base),以便:int(int2base(x, b), b) == x函数名称/参数顺序不重要。任何数字x和基b那,那个int()会接受的。这是一个很容易编写的函数:实际上,它比在这个问题中描述它更容易。然而,我觉得我一定是错过了什么。我知道这些功能bin, oct, hex,但我不能使用它们有几个原因:这些函数在早期版本的Python上是不可用的,我需要与其兼容(2.2)。我想要一个通用的解决方案,在不同的基础上可以称为相同的方法。我想允许2,8,16以外的基地相关Python优雅的int反函数(String,base)python中使用递归的整数到基x系统Python中的基62转换如何将整数转换为Python中最短的url安全字符串?
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
import string digs = string.digits + string.ascii_lettersdef 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)
慕村225694
TA贡献1880条经验 获得超4个赞
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
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]
,
添加回答
举报
0/150
提交
取消