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:这⾥再为⼤家推荐⼏款计算与转换⼯具供⼤家参考使⽤:
更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》
希望本⽂所述对⼤家Python程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论