二進制數轉換成十進制數:二進制數從右向左每位數乘以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)