python十进制和二进制的转换方法(含浮点数)
作者:kick-ass。Nuisance 时间:2021-04-03 02:26:24
本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:
我终于写完了 , 十进制转二进制的小数部分卡了我将近一个小时
上代码
#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
'''
把一个带小数的二进制数n转换成十进制
小数点后面保留pre位小数
'''
string_number1 = str(n) #number1 表示二进制数,number2表示十进制数
decimal = 0 #小数部分化成二进制后的值
flag = False
for i in string_number1: #判断是否含小数部分
if i == '.':
flag = True
break
if flag: #若二进制数含有小数部分
string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分
for i in range(len(string_decimal)):
decimal += 2**(-i-1)*int(string_decimal[i]) #小数部分化成二进制
number2 = int(str(int(string_integer, 2))) + decimal
return round(number2, pre)
else: #若二进制数只有整数部分
return int(string_number1, 2)#若只有整数部分 直接一行代码二进制转十进制 python还是骚
def dTob(n, pre=4):
'''
把一个带小数的十进制数n转换成二进制
小数点后面保留pre位小数
'''
string_number1 = str(n) #number1 表示十进制数,number2表示二进制数
flag = False
for i in string_number1: #判断是否含小数部分
if i == '.':
flag = True
break
if flag:
string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分
integer = int(string_integer)
decimal = Decimal(str(n)) - integer
l1 = [0,1]
l2 = []
decimal_convert = ""
while True:
if integer == 0: break
x,y = divmod(integer, 2) #x为商,y为余数
l2.append(y)
integer = x
string_integer = ''.join([str(j) for j in l2[::-1]]) #整数部分转换成二进制
i = 0
while decimal != 0 and i < pre:
result = int(decimal * 2)
decimal = decimal * 2 - result
decimal_convert = decimal_convert + str(result)
i = i + 1
string_number2 = string_integer + '.' + decimal_convert
return float(string_number2)
else: #若十进制只有整数部分
l1 = [0,1]
l2 = []
while True:
if n == 0: break
x,y = divmod(n, 2) #x为商,y为余数
l2.append(y)
n = x
string_number = ''.join([str(j) for j in l2[::-1]])
return int(string_number)
来源:http://www.cnblogs.com/m17773572025/p/9148489.html
标签:python,十进制,转换,二进制
0
投稿
猜你喜欢
一文详解go mod依赖管理详情
2023-07-13 04:35:06
解决python3 json数据包含中文的读写问题
2022-07-22 03:04:51
基于PHP+MySQL的聊天室设计
2023-11-22 19:26:25
某一公司的ASP面试题
2011-09-15 20:50:20
oracle数据库导入导出命令使用方法
2023-07-22 19:06:39
Python操作串口的方法
2021-11-24 07:09:10
Python selenium爬取微博数据代码实例
2023-07-01 02:46:49
常用的JavaScript表单验证正则表达式收集
2008-02-29 08:34:00
感知器基础原理及python实现过程详解
2023-11-07 16:24:35
ASP程序中使用断开的数据记录集的代码
2012-12-04 20:20:28
Python 的第三方调试库 pysnooper 使用示例
2022-09-22 09:19:39
python 遍历磁盘目录的三种方法
2021-10-15 06:36:14
asp中记录集对象的getrows和getstring用法分析
2012-11-30 20:09:49
Python requests.post方法中data与json参数区别详解
2022-02-06 09:06:20
Python三元运算与lambda表达式实例解析
2023-06-14 16:34:09
HTML的优化杂记
2010-03-10 10:39:00
Python Matplotlib绘制动图平滑曲线
2022-12-28 22:23:40
Python3.8.2安装包及安装教程图文详解(附安装包)
2021-11-17 19:35:14
python字符串常用方法
2023-05-29 13:54:15
python在协程中增加任务实例操作
2023-02-17 22:57:48