首页 > 编程 > Python > 正文

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

2020-01-04 16:35:10
字体:
来源:转载
供稿:网友

本文实例讲述了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 binsprint(dec2bin(.8125))      # [1, 1, 0, 1]

二进制小数 ⇒ 十进制小数

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

Python,十进制,二进制,小数,转换

def bin2dec(b):  d = 0  for i, x in enumerate(b):    d += 2**(-i-1)*x  return dprint(dec2bin(0.8125))        # [1, 1, 0, 1]print(bin2dec(dec2bin(0.8125)))        # 0.8125

 

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


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表