网络编程
位置:首页>> 网络编程>> Python编程>> Python实现的十进制小数与二进制小数相互转换功能

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

作者:Inside_Zhang  发布时间:2022-02-17 16:24:39 

标签: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]

二进制小数 ⇒ 十进制小数

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

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

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

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

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

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

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

来源:http://blog.csdn.net/lanchunhui/article/details/50575661

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com