栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

Base 62转换

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Base 62转换

没有为此的标准模块,但是我编写了自己的函数来实现这一点。

base62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"def enpre(num, alphabet):    """Enpre a positive number into base X and return the string.    Arguments:    - `num`: The number to enpre    - `alphabet`: The alphabet to use for encoding    """    if num == 0:        return alphabet[0]    arr = []    arr_append = arr.append  # Extract bound-method for faster access.    _divmod = divmod  # Access to locals is faster.    base = len(alphabet)    while num:        num, rem = _divmod(num, base)        arr_append(alphabet[rem])    arr.reverse()    return ''.join(arr)def depre(string, alphabet=base62):    """Depre a base X enpred string into the number    Arguments:    - `string`: The enpred string    - `alphabet`: The alphabet to use for decoding    """    base = len(alphabet)    strlen = len(string)    num = 0    idx = 0    for char in string:        power = (strlen - (idx + 1))        num += alphabet.index(char) * (base ** power)        idx += 1    return num

请注意,您可以给它提供任何字母以用于编码和解码的事实。如果您忽略该

alphabet
参数,则将获得在第一行代码中定义的62个字符的字母,从而对62个基数进行编码/解码。

希望这可以帮助。

PS-对于URL缩短器,我发现最好省略一些容易混淆的字符,例如0Ol1oI等。因此,我可以使用此字母满足URL缩短的需要-

"23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"

玩得开心。



转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号