Python十进制小数和二进制小数相互转换的实现方式


本文摘自php中文网,作者黄舟,侵删。

这篇文章主要介绍了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(第一次所得到为最高位,最后一次得到为最低位)


1

2

3

4

5

6

7

8

9

10

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]

二进制小数 ? 十进制小数

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


1

2

3

4

5

6

7

8

9

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中关于闭包的使用实例

Python有spark库么

如何获取Python中的对象属性?(实例讲解)

总结Python中执行命令的几种方法

Python获取文件路径、文件名、后缀名的实例

为什么人工智能用Python

Python用什么程序运行

Python中两种方法实现模拟登陆的代码实例

Python中base64加密解密操作方法及版本间差异

Python列表的基本操作有哪些

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...