吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1545|回复: 1
收起左侧

[Python 转载] 十进制与任意进制互转

[复制链接]
weng_zh 发表于 2022-4-26 20:40
使用int()函数实现任意进制转十进制,自定义函数conv()实现十进制转任意进制
注意:基的取值限2-36!
[Python] 纯文本查看 复制代码
def conv(m, n):
    # n为待转换的十进制数,m为新的基,m的取值为2-36
    # 新建列表,包含从0-9、A-Z,共36个字符
    a = []
    for i in range(10):
        a.append(i)
    for i in range(65, 91):
        a.append(chr(i))
    # 新建空列表,用来存放余数
    b = []
    while True:
        s = m // n  # 求商
        t = m % n  # 除权求余数
        b.append(t)  # 将余数存进列表b
        if s == 0:
            break
        m = s
    b.reverse()  # 逆取余
    for i in b:
        print(a[i], end='')
        # 输出对应进制每一位的值


A = input('A.十进制转换为其他进制/B.其他进制转为十进制\n')
if A == 'A' or A == 'a':
    y = eval(input('新的基设为:'))
    # 先判断基的范围,正确则直接调用自定义函数
    if y > 36 or y < 2:
        print('\033[31m输入错误!基的取值限2-36')
    else:
        x = eval(input('要转换的十进制数:'))
        print(f'{y}进制数为:', end='')
        conv(x, y)
elif A == 'B' or A == 'b':
    x = input('原数为:')
    y = eval(input('原数的进制为:'))
    print(f'十进制数为:{int(x, y)}')

免费评分

参与人数 1吾爱币 +5 热心值 +1 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
xiadongming 发表于 2022-4-26 22:49
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表