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 相关文章推荐
Python编码类型转换方法详解
Jul 01 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
python中的tcp示例详解
Dec 09 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
python能做什么 python的含义
Oct 12 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
python实现贪吃蛇游戏源码
Mar 21 Python
python导入库的具体方法
Jun 18 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php常用hash加密函数
2014/11/22 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
判断对象是否Window的实现代码
2012/01/10 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
js使用心得分享
2015/01/13 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
英语演讲稿范文
2014/01/03 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
迟到检讨书5000字
2014/01/31 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
计划生育诚信协议书
2014/11/02 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2016年春节慰问信息
2015/03/25 职场文书
学校党员干部承诺书
2015/05/04 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
pt-archiver 主键自增
2022/04/26 MySQL