栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python自写函数编写 十进制转各进制代码,含转小数部分。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python自写函数编写 十进制转各进制代码,含转小数部分。

将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进制

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029372.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号