程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> python實現 二進制浮點數轉換為十進制

python實現 二進制浮點數轉換為十進制

編輯:Python

這些天和進制轉換槓上了,具體可以點前面的超鏈接。由於自己的水平有限,所以c++玩不下去了。現在我使用python將之前的 二進制整數轉換為十進制 c++實現 進行了擴展,現在可以實現小數部分的轉換。關於位權什麼的直接點前面的鏈接進去看之前的文章。二進制的小數部分的位權是(1/2)^n,例如將 二進制0.101 轉換為十進制為0.625,過程如下

1*1/2 =0.5 0*1/(2^2)=0 1*1(2^3)=0.125 0.5+0.125=0.625

#!/usr/bin/env python

# -*- coding:utf-8 -*-

def tod(a):

a=int(a)

if a/10 !=0:

return tod(a/10)*2+(a%10)

else:

return a

def xod(a):

b=0

for i in range(0,len(a)):

b=b+int(a[i])*pow(0.5,i+1)

return b

def zod(a):

if '.' in a:

a=a.split('.')

a[0]=tod(a[0])

a[1]=xod(a[1])

a=a[0]+a[1]

else:

a=tod(a)

return a

if __name__=='__main__':

a=raw_input('請輸入一個二進制的數(可以包含小數):')

a=zod(a)

print a
下面請看運行結果
運行結果.png

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved