python十进制和二进制的转换方法(含浮点数)
作者:kick-ass。Nuisance 发布时间:2021-04-03 02:26:24
标签:python,十进制,转换,二进制
本文介绍了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


猜你喜欢
- 1.搭建环境:系统版本:Linux centos-linux.shared 3.10.0-123.el7.x86_64 #1 SMP Mon
- 本文实例讲述了python获取图片颜色信息的方法。分享给大家供大家参考。具体分析如下:python的pil模块可以从图片获得图片每个像素点的
- 本文实例讲述了php从文件夹随机读取文件的方法。分享给大家供大家参考。具体实现方法如下:function RandomFile($folde
- 自动依赖注入在 AbpBase.Web 的 AbpBaseWebModule 中,添加一个函数:此函
- 运行代码时,出现诸如这样的文件的权限有可能出问题,不过更多是路径本身有问题。比如,你的文件名是否正确,路径是否正确,路径后面是不是多了什么奇
- 如下所示:import osimport cv2import sysimport numpy as nppath = "F:\\I
- 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符,标示符'r'表示读。>&
- 目录深度遍历递归用栈来遍历磁盘广度遍历磁盘用队列遍历磁盘深度遍历递归import osdef get_files(path):
- 这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释:
- 列表解析 在需要改变列表而不是需要新建某列表时,可以使用列表解析。列表解析表达式为: [expr for iter_var in itera
- 表查询: 合并查询:使用union关键字,可将满足条件的重复行去掉。 select ename,sal,job from emp where
- TTS简介TTS(Text To Speech)是一种语音合成技术,可以让机器将输入文本以语音的方式播放出来,实现机器说话的效果。TTS分成
- 看着这个题目可能大家会有点陌生,不知道是什么,说的直白一点,RDFa就是让你的页面更好的被机器所理解,而不简简单单是展示你的页面,下面就关于
- 今天继续学习Django,今天主要掌握两个小点一、如果为Django项目中引入静态文件1、先要在project目录下创建static的目录,
- 刚刚在学习些测试报告的时候,出现一个路径的问题,找了很久的原因,竟然是少了一个反斜杠引起的,在此顺便记录一下正反斜杠的作用。在Python中
- 前言在实际生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实
- SELECT ABS(DATEDIFF(dd,EndDate,BeginDate)) FROM dbo.WorkingPlan 其中,Wor
- 本文需要一点Python socket基础。回顾RPC客户端(Client):服务调用方。客户端存根(Client Stub):存放服务端地
- 密码规则:它至少包含 8 个字符,最多包含 20 个字符。它至少包含一个数字。它至少包含一个大写字母。它至少包含一个小写字母。它至少包含一个
- 无水印视频下载方法一:无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可。我使用的去水印平台是:http://douyin.ii