Python实现的十进制小数与二进制小数相互转换功能

 更新时间:2017年10月12日 09:59:30   作者:Inside_Zhang  
这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下

本文实例讲述了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]

二进制小数 ⇒ 十进制小数

小数点后,从左向右,每位分别表示

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

PS:这里再为大家推荐几款计算与转换工具供大家参考使用:

在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Django使用Profile扩展User模块方式

    Django使用Profile扩展User模块方式

    这篇文章主要介绍了Django使用Profile扩展User模块方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Unicode和Python的中文处理

    Unicode和Python的中文处理

    在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还有其它许许多多的编码之间的区别而大伤脑筋。本文将介绍Unicode和Python的中文处理的相关知识。下面跟着小编一起来看下吧
    2017-03-03
  • Pytorch搭建YoloV5目标检测平台实现过程

    Pytorch搭建YoloV5目标检测平台实现过程

    这篇文章主要为大家介绍了Pytorch搭建YoloV5目标检测平台实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 中秋将至利用python画一些月饼从天而降不用买了

    中秋将至利用python画一些月饼从天而降不用买了

    中秋没两天就要到了,今天小编就利用python画个月饼的小游戏,文中内容非常详细,感兴趣的小伙伴一定要收藏起来送给远方的朋友呀
    2021-09-09
  • Python多线程中线程数量如何控制

    Python多线程中线程数量如何控制

    本文主要介绍了Python多线程中线程数量如何控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python 图片视频模糊化实现案例

    Python 图片视频模糊化实现案例

    本文主要分享一个可以将图片或者视频模糊化的工具代码。技术路线主要是使用ffmpeg滤镜。感兴趣的小伙伴可以看一看
    2021-11-11
  • Python的Django框架中模板碎片缓存简介

    Python的Django框架中模板碎片缓存简介

    这篇文章主要介绍了Python的Django框架中模板碎片缓存,包括给cache标签传递参数等方法,需要的朋友可以参考下
    2015-07-07
  • Python Switch Case三种实现方法代码实例

    Python Switch Case三种实现方法代码实例

    这篇文章主要介绍了Python Switch Case2种实现方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python Django教程之实现待办事项应用程序

    Python Django教程之实现待办事项应用程序

    Django是一个基于Python Web框架的高级Web框架,允许快速开发和干净,务实的设计。本文将创建一个待办事项应用程序,以了解Django的基础知识,感兴趣的可以尝试一下
    2022-10-10
  • Django 使用Ajax进行前后台交互的示例讲解

    Django 使用Ajax进行前后台交互的示例讲解

    今天小编就为大家分享一篇Django 使用Ajax进行前后台交互的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论