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 实现文件的全备份和差异备份详解
Dec 27 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
python实现列表的排序方法分享
Jul 01 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
python字典按照value排序方法
Dec 28 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实现的简单mock json脚本分享
2015/02/10 PHP
关于php中一些字符串总结
2016/05/05 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python学习 流程控制语句详解
2016/06/01 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python socket 套接字实现通信详解
2019/08/27 Python
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
中文专业毕业生自荐信
2014/05/24 职场文书
2015年行政部工作总结
2015/04/28 职场文书
处罚决定书范文
2015/06/24 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
python脚本框架webpy模板控制结构
2021/11/20 Python