【python】进制转换

def binary_to_decimal(binary_str):
    return int(binary_str, 2)

def octal_to_decimal(octal_str):
    return int(octal_str, 8)

def decimal_to_decimal(decimal_str):
    return int(decimal_str)

def hexadecimal_to_decimal(hex_str):
    return int(hex_str, 16)

def decimal_to_ascii(decimal_value):
    return chr(decimal_value) if 0 <= decimal_value <= 127 else "不可见字符"

def ascii_to_decimal(ascii_str):
    return [ord(char) for char in ascii_str]

def main():
    print("请选择输入类型 \n1、二进制\n2、八进制\n3、十进制\n4、十六进制\n5、ASCII\n=========")
    type_input = int(input())
    
    if type_input in [1, 2, 3, 4]:
        value_input = input("请输入数值: ")

        if type_input == 1:
            decimal_value = binary_to_decimal(value_input)
            print(f"二进制: {value_input}")
            print(f"十进制: {decimal_value}")
            print(f"八进制: {oct(decimal_value)[2:]}")
            print(f"十六进制: {hex(decimal_value)[2:].upper()}")
            print(f"ASCII: {decimal_to_ascii(decimal_value)}")

        elif type_input == 2:
            decimal_value = octal_to_decimal(value_input)
            print(f"八进制: {value_input}")
            print(f"十进制: {decimal_value}")
            print(f"二进制: {bin(decimal_value)[2:]}")
            print(f"十六进制: {hex(decimal_value)[2:].upper()}")
            print(f"ASCII: {decimal_to_ascii(decimal_value)}")

        elif type_input == 3:
            decimal_value = decimal_to_decimal(value_input)
            print(f"十进制: {value_input}")
            print(f"二进制: {bin(decimal_value)[2:]}")
            print(f"八进制: {oct(decimal_value)[2:]}")
            print(f"十六进制: {hex(decimal_value)[2:].upper()}")
            print(f"ASCII: {decimal_to_ascii(decimal_value)}")

        elif type_input == 4:
            decimal_value = hexadecimal_to_decimal(value_input)
            print(f"十六进制: {value_input}")
            print(f"十进制: {decimal_value}")
            print(f"二进制: {bin(decimal_value)[2:]}")
            print(f"八进制: {oct(decimal_value)[2:]}")
            print(f"ASCII: {decimal_to_ascii(decimal_value)}")

    elif type_input == 5:
        value_input = input("请输入 ASCII 字符串: ")
        decimal_values = ascii_to_decimal(value_input)
        print(f"ASCII: {value_input}")
        for decimal_value in decimal_values:
            print(f"十进制: {decimal_value}")
            print(f"二进制: {bin(decimal_value)[2:]}")
            print(f"八进制: {oct(decimal_value)[2:]}")
            print(f"十六进制: {hex(decimal_value)[2:].upper()}")

    else:
        print("输入类型无效,请输入 1、2、3、4 或 5。")

if __name__ == "__main__":
    main()

posted @   jarico  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示