猫史档案馆


Python进制转换

用户:ywcwywcw查看:1 回复:2 评论:1 创建时间:2023-08-05T18:30:04


你是否还在为进制转换而发愁

emotion_编程猫_搓头

虽然进制转换并不难,但是如果十进制整数很长那么如果进行笔算,便会很麻烦,当然可以用计算器     ps水字数

为了防止大家在进制转换上发愁,我会用Python写一个简单的进制转换器

emotion_编程猫_嗨起来emotion_编程猫_嗨起来emotion_编程猫_嗨起来

分两部分别为   用函数  &  不用函数     ps作者很懒只写了十进制转换

下面是用函数的代码:

emotion_编程猫_厉害了

十进制转二进制

def decimal_to_binary(decimal):
    binary = bin(decimal)[2:]  # Remove the '0b' prefix
    return binary

十进制转八进制

def decimal_to_octal(decimal):
    octal = oct(decimal)[2:]  # Remove the '0o' prefix
    return octal

十进制转十六进制

def decimal_to_hexadecimal(decimal):
    hexadecimal = hex(decimal)[2:]  # Remove the '0x' prefix
    return hexadecimal

判断要转换为哪种进制

def convert_decimal_to_base(decimal, base):
    if base == 2:
        return decimal_to_binary(decimal)
    elif base == 8:
        return decimal_to_octal(decimal)
    elif base == 16:
        return decimal_to_hexadecimal(decimal)
    else:
        return "Invalid base"

 

主代码
while True:
    decimal_number = int(input("请输入一个整数:\n"))
    base = int(input("请输入要转换的进制 (2, 8, 16):\n"))
    result = convert_decimal_to_base(decimal_number, base)
    print(f"Result: {result}")

全部代码

def decimal_to_binary(decimal):
    binary = bin(decimal)[2:]  # Remove the '0b' prefix
    return binary


def decimal_to_octal(decimal):
    octal = oct(decimal)[2:]  # Remove the '0o' prefix
    return octal


def decimal_to_hexadecimal(decimal):
    hexadecimal = hex(decimal)[2:]  # Remove the '0x' prefix
    return hexadecimal


def convert_decimal_to_base(decimal, base):
    if base == 2:
        return decimal_to_binary(decimal)
    elif base == 8:
        return decimal_to_octal(decimal)
    elif base == 16:
        return decimal_to_hexadecimal(decimal)
    else:
        return "Invalid base"

while True:
    decimal_number = int(input("请输入一个整数:\n"))
    base = int(input("请输入要转换的进制 (2, 8, 16):\n"))
    result = convert_decimal_to_base(decimal_number, base)
    print(f"Result: {result}")

接下来是不带函数的代码,可以用来喵

emotion_编程猫_点赞emotion_编程猫_点赞emotion_编程猫_点赞

十进制转二进制

def decimal_to_binary(decimal):
    binary = ""
    while decimal > 0:
        binary = str(decimal % 2) + binary
        decimal = decimal // 2
    return binary

十进制转八进制

def decimal_to_octal(decimal):
    octal = ""
    while decimal > 0:
        octal = str(decimal % 8) + octal
        decimal = decimal // 8
    return octal

十进制转十六进制

def decimal_to_hexadecimal(decimal):
    hexadecimal = ""
    hex_digits = "0123456789ABCDEF"
    while decimal > 0:
        hexadecimal = hex_digits[decimal % 16] + hexadecimal
        decimal = decimal // 16
    return hexadecimal
判断要转换为那种进制
def convert_decimal_to_base(decimal, base):
    if base == 2:
        return decimal_to_binary(decimal)
    elif base == 8:
        return decimal_to_octal(decimal)
    elif base == 16:
        return decimal_to_hexadecimal(decimal)
    else:
        return "抱歉无法转换!"
主代码
while True:
    decimal_number = int(input("请输入一个十进制整数:\n"))
    base = int(input("请输入要转换的进制 (2, 8, 16):\n"))
    result = convert_decimal_to_base(decimal_number, base)
    print(f"转换之后的数: {result}")

完整代码

def decimal_to_binary(decimal):
    binary = ""
    while decimal > 0:
        binary = str(decimal % 2) + binary
        decimal = decimal // 2
    return binary


def decimal_to_octal(decimal):
    octal = ""
    while decimal > 0:
        octal = str(decimal % 8) + octal
        decimal = decimal // 8
    return octal


def decimal_to_hexadecimal(decimal):
    hexadecimal = ""
    hex_digits = "0123456789ABCDEF"
    while decimal > 0:
        hexadecimal = hex_digits[decimal % 16] + hexadecimal
        decimal = decimal // 16
    return hexadecimal


def convert_decimal_to_base(decimal, base):
    if base == 2:
        return decimal_to_binary(decimal)
    elif base == 8:
        return decimal_to_octal(decimal)
    elif base == 16:
        return decimal_to_hexadecimal(decimal)
    else:
        return "抱歉无法转换!"


while True:
    decimal_number = int(input("请输入一个十进制整数:\n"))
    base = int(input("请输入要转换的进制 (2, 8, 16):\n"))
    result = convert_decimal_to_base(decimal_number, base)
    print(f"转换之后的数: {result}")

以上就是全部内容,希望大家能理解    ps这次很水,一个注释都没写

bye

 


回复

上一页1 页 / 共 1下一页
活波的飓风雀HSWK活波的飓风雀HSWK

11

点赞0


评论


囧仙_official囧仙_official

我寻思着任意进制互相转换也不难啊

点赞1


评论