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 09 Python
Python单链表的简单实现方法
Sep 23 Python
Python深度优先算法生成迷宫
Jan 22 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
Python Pandas 箱线图的实现
Jul 23 Python
Django分组聚合查询实例分享
Apr 29 Python
基于PyQT实现区分左键双击和单击
May 19 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 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 GUID生成函数和类
2014/03/10 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python入门之后再看点什么好?
2018/03/05 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
python中字典增加和删除使用方法
2020/09/30 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
社会保险接收函
2014/01/12 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
美术教师求职信范文
2015/03/20 职场文书
举起手来观后感
2015/06/09 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
实操Python爬取觅知网素材图片示例
2021/11/27 Python
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers