這篇文章主要介紹了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
1101即0.8125的二進位是0.
11011#(第一次得到為最高位,最後一次得到為最低位)
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
以上是Python十進制小數和二進制小數相互轉換的實作方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!