将python中 十进制数转换为二进制/八进制/十六进制
法一:编写转换代码,可以带小数。 十进制转换二进制:
各个变量定义:
number = eval(input('请输入一个十进制数:'))
b_number = number
xb_number = b_number - int(b_number)
b_number = int(b_number)
b_new_list = []
xb_new_list = []
B_number = ''
xB_number = ''
转换整数部分:
while b_number != 0:
by_number = b_number % 2
b_new_list.append(by_number)
b_number //= 2
b_new_list.reverse()
for Bin in b_new_list:
B_number = B_number + str(Bin)[0:1]
转换小数部分:
#转二进制
while xb_number != 0:
xb_number = xb_number * 2
xb_new_list.append(int(xb_number))
xb_number = xb_number - int(xb_number)
for x_Bin in xb_new_list :
xB_number += str(x_Bin)[0:1]
print('对应的二进制数为:',B_number + '.' + xB_number)
十进制转换八进制: 与十进制转换二进制大致相同
o_number = number
xo_number = number - int(number)
o_new_list = []
O_number = ''
xo_new_list = []
xO_number = ''
while o_number != 0:
oy_number = o_number % 8
o_new_list.append(oy_number)
o_number //= 8
o_new_list.reverse()
for Oct in o_new_list:
O_number = O_number + str(Oct)[:1]
while xo_number != 0:
xo_number = xo_number * 8
xo_new_list.append(int(xo_number))
xo_number = xo_number - int(xo_number)
for x_Oct in xo_new_list :
xO_number += str(x_Oct)[0:1]
print('对应的八进制数为:',O_number + '.' + xO_number)
十进制转换十六进制:
# 转十六进制
hex_list = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
h_number = number
xh_number = number - int(number)
h_new_list = []
xh_new_list = []
xH_number = ''
H_number = ''
while h_number != 0:
hy_number = h_number % 16
h_new_list.append(hex_list[int(hy_number)])
h_number //= 16
h_new_list.reverse()
for Hex in h_new_list:
H_number += str(Hex)
while xh_number != 0:
xh_number *= 16
xh_new_list.append(hex_list[int(xh_number)])
xh_number -= int(xh_number)
xH_number = ''.join(xh_new_list)
print('对应的十六进制为:',H_number + '.' + xH_number)
#运行结果:
法二:系统自带的函数转换,此方法只适用于整数
number = eval(input('输入十进制数字:'))
print(bin(number)[2:]) #二进制 索引[2:]去掉进制的前缀
print(oct(number)[2:]) #八进制
print(hex(number)[2:]) #16进制



