python十进制和二进制的转换方法(含浮点数)


Posted in Python onJuly 07, 2018

本文介绍了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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python的Django框架使用入门指引
Apr 15 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
python实现逻辑回归的方法示例
May 02 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
Python补齐字符串长度的实例
Nov 15 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 #Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 #Python
python3 kmp 字符串匹配的方法
Jul 07 #Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 #Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 #Python
python求最大连续子数组的和
Jul 07 #Python
python 平衡二叉树实现代码示例
Jul 07 #Python
You might like
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
javascript 动态添加表格行
2006/06/22 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
js面向对象编程总结
2017/02/16 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
python算法演练_One Rule 算法(详解)
2017/05/17 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
python爬虫请求头设置代码
2020/07/28 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
招商业务员岗位职责
2013/12/16 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
实习介绍信范文
2015/05/05 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python