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 相关文章推荐
python类参数self使用示例
Feb 17 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python命令行工具Click快速掌握
Jul 04 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
Python docutils文档编译过程方法解析
Jun 23 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 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
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python利用IPython提高开发效率
2016/08/10 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python pandas生成时间列表
2019/06/29 Python
Python实现微信好友的数据分析
2019/12/16 Python
Python列表list操作相关知识小结
2020/01/29 Python
Python通过文本和图片生成词云图
2020/05/21 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
Ajxa常见问题都有哪些
2014/03/26 面试题
环境工程专业自荐信范文
2014/06/24 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
python多次执行绘制条形图
2022/04/20 Python