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实现备份文件实例
Sep 16 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
python记录程序运行时间的三种方法
Jul 14 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
利用python修改json文件的value方法
Dec 31 Python
python操作日志的封装方法(两种方法)
May 23 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
Python基础详解之描述符
Apr 28 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
php数组合并的二种方法
2014/03/21 PHP
Symfony生成二维码的方法
2016/02/04 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
基于jquery的3d效果实现代码
2011/03/23 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
英语自我评价范文
2014/01/24 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
索赔员岗位职责
2015/02/15 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
工作失职自我检讨书
2015/05/05 职场文书
退税申请报告怎么写
2015/05/18 职场文书
python超详细实现完整学生成绩管理系统
2022/03/17 Python
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang