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中list常用操作实例详解
Jun 03 Python
Python实现完整的事务操作示例
Jun 20 Python
简单实现Python爬取网络图片
Apr 01 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
python实现自动登录
Sep 17 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Django shell调试models输出的SQL语句方法
Aug 29 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python request中文乱码问题解决方案
2020/09/17 Python
Python request post上传文件常见要点
2020/11/20 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
银行学习十八大感想
2014/01/11 职场文书
股份转让协议书
2014/04/12 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
vue 自定义组件添加原生事件
2022/04/21 Vue.js