编程实现一个进制转换系统, 可以实现十进制与二进制、十进制与十六进制之间的相互转换。
时间: 2024-02-19 21:58:44 浏览: 79
好的,以下是一个 Python 的进制转换程序,可以实现十进制与二进制、十进制与十六进制之间的相互转换:
```python
def decimal_to_binary(decimal):
binary = ""
while decimal > 0:
binary = str(decimal % 2) + binary
decimal //= 2
return binary
def decimal_to_hex(decimal):
hex_map = {
10: "A",
11: "B",
12: "C",
13: "D",
14: "E",
15: "F"
}
hexnum = ""
while decimal > 0:
remainder = decimal % 16
if remainder >= 10:
hexnum = hex_map[remainder] + hexnum
else:
hexnum = str(remainder) + hexnum
decimal //= 16
return hexnum
def binary_to_decimal(binary):
decimal = 0
for i in range(len(binary)):
decimal += int(binary[i]) * 2**(len(binary)-i-1)
return decimal
def hex_to_decimal(hexnum):
decimal = 0
for i in range(len(hexnum)):
if hexnum[i] in ["A", "B", "C", "D", "E", "F"]:
decimal += (ord(hexnum[i]) - 55) * 16**(len(hexnum)-i-1)
else:
decimal += int(hexnum[i]) * 16**(len(hexnum)-i-1)
return decimal
def convert():
while True:
print("请选择要转换的进制类型:")
print("1. 十进制转二进制")
print("2. 十进制转十六进制")
print("3. 二进制转十进制")
print("4. 十六进制转十进制")
print("5. 退出程序")
choice = input("请选择操作:")
if choice == "1":
decimal = int(input("请输入十进制数:"))
binary = decimal_to_binary(decimal)
print("十进制数 {} 转换为二进制数为 {}".format(decimal, binary))
elif choice == "2":
decimal = int(input("请输入十进制数:"))
hexnum = decimal_to_hex(decimal)
print("十进制数 {} 转换为十六进制数为 {}".format(decimal, hexnum))
elif choice == "3":
binary = input("请输入二进制数:")
decimal = binary_to_decimal(binary)
print("二进制数 {} 转换为十进制数为 {}".format(binary, decimal))
elif choice == "4":
hexnum = input("请输入十六进制数:")
decimal = hex_to_decimal(hexnum)
print("十六进制数 {} 转换为十进制数为 {}".format(hexnum, decimal))
elif choice == "5":
break
else:
print("输入有误,请重新输入。")
```
使用方法很简单,只需要调用`convert()`函数即可进入转换程序,根据提示选择需要进行的操作。例如,要将十进制数57转换为二进制数,可以这样输入:
```
请选择要转换的进制类型:
1. 十进制转二进制
2. 十进制转十六进制
3. 二进制转十进制
4. 十六进制转十进制
5. 退出程序
请选择操作:1
请输入十进制数:57
十进制数 57 转换为二进制数为 111001
```
如果需要转换其他进制的数,只需要选择对应的操作即可。
阅读全文