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 开发Activex组件方法
Nov 08 Python
python函数返回多个值的示例方法
Dec 04 Python
python算法学习之基数排序实例
Dec 18 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
跟老齐学Python之数据类型总结
Sep 24 Python
Python实现约瑟夫环问题的方法
May 03 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
Python3.6简单反射操作示例
Jun 14 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
python 用pandas实现数据透视表功能
Dec 21 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根据分类合并数组的方法实例详解
2013/11/06 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
Javascript中的相等与不等运算
2010/04/25 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
巴西购物网站:Submarino
2020/01/19 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
企业职业病防治方案
2014/05/29 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2015年入党决心书
2015/02/05 职场文书
工作会议通知
2015/04/15 职场文书
红色革命电影观后感
2015/06/18 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL