之前曾經寫過十進制整數轉換為二進制 今天要整的事情正好是倒過來的。首先要了解的是位權,相關資料可以到百度百科上查看,傳送門:http://baike.baidu.com/view/1412365.htm
在十進制轉換為二進制是采用除以2求余的辦法,而二轉十卻需要采用乘法。二進制101轉換為十進制5的過程如下:
首位:1*2^2=4 次位:0*2^1=0 末尾:1*2^1=1 4+1=5
#include<iostream>
using namespace std;
int b2d(int erjinzhi){
if(erjinzhi/10!=0){
return b2d(erjinzhi/10)*2+(erjinzhi%10);
}
else
{
return(erjinzhi);
}
}
int main(){
int erjinzhi=0,shijinzhi=0;
cout<<"請輸入一個二進制數:";
cin>>erjinzhi;
shijinzhi=b2d(erjinzhi);
cout<<shijinzhi<<endl;
}
下面看一下測試結果: