天天看點

python二進制轉十進制算法_Python二進制轉十進制算法、十進轉二進制算法

二進制數轉換成十進制數:二進制數從右向左每位數乘以2的次方(從0開始,從右向左依次+1),然後相加求和即可

如:0101轉成十進制為:1*20+0*21+1*22+0*23=1+0+4+0=5

算法實作:

#coding=utf-8

b=raw_input("請輸入一個二進制數:".decode("utf-8").encode("gbk"))

sum=0

for i in range(len(b)):

sum+=int(b[len(b)-1-i])*pow(2,i)

print u"轉換成十進制數是:",sum

-------------------------------------------

十進制數轉換成二進制數:十進制數除2取餘,商繼續除2取餘,直到商為0,所有餘數逆順即可

如:12轉換成二進制是:1100

12/2=6 ------ 0 第4位

6/2=3 ------ 0 第3位

3/2=1 ------ 1 第2位

1/2=0 ------ 1 第1位

算法實作:

#coding=utf-8

n=int(raw_input(u"請輸入一個正整數:".encode("gbk")))

res=[]

res.append(str(n%2))

while n/2!=0:

n=n/2

res.append(str(n%2))

res.reverse()

print u"轉化為二進制是:","".join(res)