本文執行個體講述了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:這裡再為大家推薦幾款計算與轉換工具供大家參考使用:
線上任意進制轉換工具:http://tools.jb51.net/transcoding/hexconvert
科學電腦線上使用_進階電腦線上計算:http://tools.jb51.net/jisuanqi/jsqkexue
線上電腦_标準電腦:http://tools.jb51.net/jisuanqi/jsq
更多關于Python相關内容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python資料結構與算法教程》、《Python函數使用技巧總結》、《Python字元串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》
希望本文所述對大家Python程式設計有所幫助。
您可能感興趣的文章:将python圖檔轉為二進制文本的執行個體Python 字元串與二進制串的互相轉換示例Python二進制串轉換為通用字元串的方法Python 内置函數進制轉換的用法(十進制轉二進制、八進制、十六進制)使用Python進行二進制檔案讀寫的簡單方法(推薦)python處理二進制資料的方法python二進制讀寫及特殊碼同步實作詳解