【发布时间】:2017-12-11 17:41:23
【问题描述】:
此函数接受任何以 10 为底的整数,并以指定的以 32 为底的形式返回该数字的字符串表示形式:
def encodeN(n,N,D="0123456789qwertyuiopasdfghjklzxc"):
return (encodeN(n//N,N)+D[n%N]).lstrip("0") if n>0 else "0"
例子:
print (encodeN(16002,32))
输出:
ya2
但是我在将解码函数从 base-32 写回 base-10 时遇到问题。我该怎么写?我可以输入自定义的非标准字符来扩展 base-n 吗?
【问题讨论】:
-
当您说“回到 base-10”时,您是在谈论从整数的 base-32 字符串表示形式转换为 Python
int,对吗? (Pythonints 不存储在 base 10 中,因此“base-10”部分有点误导。) -
是的,我就是这个意思:)
-
只使用内置的
base64.b32encode()有什么问题吗? -
@zwer:我猜它不使用
"0123456789qwertyuiopasdfghjklzxc"。 -
@zwer 一切正常,但我想编写代码。
标签: python python-3.x base