前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 进制转换

python 进制转换

作者头像
Tim在路上
发布2021-09-07 16:51:31
8810
发布2021-09-07 16:51:31
举报
代码语言:javascript
复制
# -*- coding: utf-8 -*-

# 10进制转化为任何进制

from string import digits,ascii_lowercase,ascii_uppercase

Alphabat = digits + ascii_lowercase + ascii_uppercase

#print(Alphabat)
## 递归的方法
def ten2any(num,b=64):
    # 不满足assert条件的会直接被抛出异常
    assert b<=64 and b>1
    
    n,index = divmod(num,b)
    
    if n>0:
        return ten2any(n,b) + Alphabat[index]
    else:
        return  Alphabat[index]
    
## 迭代的方法

def ten2any1(n,b=64):
    assert n<=64 and n > 1
    
    res = ""
    while n > 0:
        n,index = divmod(n)
        res = Alphabat[index] + res
    
    return res

### 任何进制转化为10进制
def any2ten(s,base=62):
    assert base<=62 and base>1
    res = 0
    s = str(s)
    for i,n in enumerate(reversed(s)):
        index = Alphabat.index(n)
        res = res + index*pow(base,i)
    return res
    
if __name__ == "__main__":
    print(ten2any(16,17))
    print(any2ten(16,16))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档