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实现简单的TCP代理服务器
Oct 08 Python
Python的函数的一些高阶特性
Apr 27 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
Python 加密与解密小结
Dec 06 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
python import 上级目录的导入
Nov 03 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
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
JS hashMap实例详解
2016/05/26 Javascript
canvas的神奇用法
2017/02/03 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
公休请假条
2014/04/11 职场文书
个人贷款收入证明
2014/10/26 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL