示例代码如下:

def dec2base(x, R):
    # 判断输入是否合法
    if x < 0 or R < 2 or R > 16:
        print("输入不合法,请重新输入。")
        return ""
    # 定义数字和字母对应关系
    digits = "0123456789ABCDEF"
    # 初始化结果字符串
    result = ""
    # 不断取余,直到商为0
    while x > 0:
        remainder = x % R
        result = digits[remainder] + result
        x //= R
    return result

# 主函数
while True:
    x = int(input("请输入一个十进制正整数:"))
    if x == 0:
        print("程序结束。")
        break
    R = int(input("请输入要转换的进制数(2-16):"))
    result = dec2base(x, R)
    print("{}的{}进制数为{}".format(x, R, result))

示例输出:

请输入一个十进制正整数:1024
请输入要转换的进制数(2-16):2
1024的2进制数为10000000000
请输入一个十进制正整数:1024
请输入要转换的进制数(2-16):8
1024的8进制数为2000
请输入一个十进制正整数:1024
请输入要转换的进制数(2-16):16
1024的16进制数为400
请输入一个十进制正整数:0
程序结束。
编写函数该函数能完成任意的十进制数x转换为R2≤R≤16进制数。调用该函数将输入的一个十进制正整数分别转换为R进制数数字串。要求:1在主函数中需要用循环完成多次转换输入的x或R为负数时应提示重新输入;输入的十进制数为0时停止转换。 2在主函数中输出转换结果。 3测试结果应该能够反映R=2、R=8、R=16和x=0的情况。

原文地址: https://www.cveoy.top/t/topic/bYVa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录