base = [str(x) for x in range(10)] + [chr(x) for x in range(ord('A'), ord('A') + 6)]
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
def dec2bin(string_num):
'''十进制转换为 二进制'''
num = int(string_num)
# 转换为 整数
mid = []
while True:
if num == 0: break
# 如果输入的十进制为 0 则退出
num, rem = divmod(num, 2)
# num 为 num / 2 的值
# rem 为 余数
mid.append(base[rem])
# 将余数添加到 mid 中
return ''.join([str(x) for x in mid[::-1]])
def dec2oct(string_num):
'''转换为 八进制'''
num = int(string_num)
# 转换为 整数
mid = []
while True:
if num == 0: break
num, rem = divmod(num, 8)
# num 为 num / 8 的值
# rem 为 余数
mid.append(base[rem])
# 将余数添加到 mid 中
return ''.join([str(x) for x in mid[::-1]])
def dec2hex(string_num):
'''转换为 十六进制'''
num = int(string_num)
# 转换为 整数
mid = []
while True:
if num == 0: break
num, rem = divmod(num, 16)
# num 为 num / 16 的值
# rem 为 余数
mid.append(base[rem])
# 将余数添加到 mid 中
return ''.join([str(x) for x in mid[::-1]])
num = float(input())
# 让用户输入数字
print(dec2bin(num),dec2oct(num),dec2hex(num))
# 输出 十进制转为 2 ,8 ,16 进制之后的数
2020-06-07