天天看點

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

即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十進制小數轉二進制_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相關内容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python資料結構與算法教程》、《Python函數使用技巧總結》、《Python字元串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。

您可能感興趣的文章:将python圖檔轉為二進制文本的執行個體Python 字元串與二進制串的互相轉換示例Python二進制串轉換為通用字元串的方法Python 内置函數進制轉換的用法(十進制轉二進制、八進制、十六進制)使用Python進行二進制檔案讀寫的簡單方法(推薦)python處理二進制資料的方法python二進制讀寫及特殊碼同步實作詳解