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使用百度翻译进行中翻英示例
Apr 14 Python
浅析Git版本控制器使用
Dec 10 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
python 剪切移动文件的实现代码
Aug 02 Python
分析python请求数据
Aug 19 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
python中while和for的区别总结
Jun 28 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Python将二维列表list的数据输出(TXT,Excel)
Apr 23 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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并发访问实例代码
2012/09/06 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
详解Python的Django框架中的通用视图
2015/05/04 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
智能电子应届生求职信
2013/11/10 职场文书
总经理助理的八要求
2013/11/12 职场文书
跟单文员岗位职责
2014/01/03 职场文书
省三好学生申请材料
2014/01/22 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2019教师的学习计划
2019/06/25 职场文书