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使用稀疏矩阵节省内存实例
Jun 27 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
TensorFlow实现自定义Op方式
Feb 04 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
Feb 05 Python
Django使用Profile扩展User模块方式
May 14 Python
Python sublime安装及配置过程详解
Jun 29 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
Python中相见恨晚的技巧
Apr 13 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server