用户:
ywcw查看:1 回复:2 评论:1 创建时间:2023-08-05T18:30:04
你是否还在为进制转换而发愁?

虽然进制转换并不难,但是如果十进制整数很长那么如果进行笔算,便会很麻烦,当然可以用计算器 ps水字数
为了防止大家在进制转换上发愁,我会用Python写一个简单的进制转换器,



分两部分别为 用函数 & 不用函数 ps作者很懒只写了十进制转换
下面是用函数的代码:

十进制转二进制
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}")
接下来是不带函数的代码,可以用来喵



十进制转二进制
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