利用python实现整数转换为任意进制字符串

假设你想将一个整数转换为一个二进制和十六进制字符串。例如,将整数 10 转换为十进制字符串表示为 10 ,或将其字符串表示为二进制 1010 。

实现 以 2 到 16 之间的任何基数为参数:

def toStr(num,base):
    convertString = "0123456789ABCDEF"#最大转换为16进制
    if num < base:
        return convertString[num]
    else:
        return toStr(num//base,base)  + convertString[num%base]

print(toStr(1453,16))#5AD

 让我们再次跟踪算法; 这次我们将数字 10 转换为其基数为 2 的字符串(“1010”):

上图显示我们得到的结果,但看起来数字是错误的顺序。该算法是正确的,因为我们首先在第 6 行进行递归调用,然后我们添加余数的字符串形式。 如果我们反向返回convertString查找并返回 toStr 调用,则生成的字符串将是反向的!通过延后连接操作直到递归调用返回,我们可以得到正确顺序的结果。

 

 

 



posted @ 2018-08-06 18:16  耐烦不急  阅读(2405)  评论(0编辑  收藏  举报