Python实现的十进制小数与二进制小数相互转换功能


Posted in Python onOctober 12, 2017

本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:

十进制小数 ⇒ 二进制小数

乘2取整

对十进制小数乘2得到的整数部分小数部分

整数部分即是相应的二进制数码,

再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。

如此不断重复,直到小数部分为0或达到精度要求为止.

第一次所得到为最高位,最后一次得到为最低位

如:

0.25的二进制

0.25*2=0.5   取整是0
0.5*2=1.0     取整是1

即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

0.8125的二进制

0.8125*2=1.625  取整是1
0.625*2=1.25      取整是1
0.25*2=0.5          取整是0
0.5*2=1.0            取整是1

即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

def dec2bin(x):
  x -= int(x)
  bins = []
  while x:
    x *= 2
    bins.append(1 if x>=1. else 0)
    x -= int(x)
  return bins
print(dec2bin(.8125))
      # [1, 1, 0, 1]

二进制小数 ⇒ 十进制小数

小数点后,从左向右,每位分别表示

Python实现的十进制小数与二进制小数相互转换功能

def bin2dec(b):
  d = 0
  for i, x in enumerate(b):
    d += 2**(-i-1)*x
  return d
print(dec2bin(0.8125))
        # [1, 1, 0, 1]
print(bin2dec(dec2bin(0.8125)))
        # 0.8125
Python 相关文章推荐
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python实现DDos攻击实例详解
Feb 02 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Python接口测试get请求过程详解
Feb 28 Python
java字符串格式化输出实例讲解
Jan 06 Python
python实现马丁策略的实例详解
Jan 15 Python
Python3压缩和解压缩实现代码
Mar 01 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
Python实现照片卡通化
Dec 06 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 Python
Python实现信息管理系统
Jun 05 Python
Python调用C# Com dll组件实战教程
Oct 12 #Python
python 实现一个贴吧图片爬虫的示例
Oct 12 #Python
Python实现曲线点抽稀算法的示例
Oct 12 #Python
python去除字符串中的换行符
Oct 11 #Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 #Python
Windows系统下多版本pip的共存问题详解
Oct 10 #Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 #Python
You might like
php多文件上传功能实现原理及代码
2013/04/18 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
教师申诉制度
2014/01/29 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
农村门前三包责任书
2014/07/25 职场文书
民族精神月活动总结
2014/08/28 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
python中pymysql包操作数据库方法
2022/04/19 Python