如何使用自定义字母表将Base10数字转换为Base64数字?

2024-09-30 18:20:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,需要能够将base10数字转换为base64数字,然后再次使用以下字母表:

"0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM. "

我看过其他堆栈溢出问题,但这些解决方案都不起作用。谢谢你的帮助


Tags: 程序堆栈数字解决方案字母表base64base10
1条回答
网友
1楼 · 发布于 2024-09-30 18:20:18

试试这个

s = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM. "
def encode(n):
  ans = ''
  if n == 0:
    ans = s[0]
  else:
    while n:
      r, n = n % 64, n // 64
      ans += s[r]
  return ans[::-1]

def decode(n):
  ans, m = 0, 1
  for char in n[::-1]:
    ans += s.index(char) * m
    m *= 64
  return ans

print(encode(987654321))
print(decode('VZEnF'))

输出:

VZEnF
987654321

相关问题 更多 >