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 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
Django model序列化为json的方法示例
Oct 16 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
pymysql模块的使用(增删改查)详解
Sep 09 Python
Python中os模块功能与用法详解
Feb 26 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
详解Python中的路径问题
Sep 02 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
Python OpenCV实现图形检测示例详解
Apr 08 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
php生成验证码函数
2015/10/20 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Python函数调用追踪实现代码
2020/11/27 Python
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
信访工作者先进事迹
2014/01/17 职场文书
自荐书4要点
2014/01/25 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
小学生教师节广播稿
2015/08/19 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js