//法一:
#include<iostream>
#include<math.h>
using namespace std;
int main(void){
int num[10];
int n,i=0,m=0;
cin>>n;
while(n){
num[i]=n%10;
i++;
n=n/10;
}
i--;
while(i>=0){
if(num[i]==1){
m+=pow(2.0,i);
}
i--;
}
cout<<m<<endl;
return 0;
}
//法二
#include<iostream>
#include<math.h>
using namespace std;
int main(void){
char ch;
int num=0;
cout<<"请输入二进制数:";
while(ch=getchar(),ch!='\n'){
num=num*2+(ch-'0');
}
cout<<"转换为十进制为:"<<num<<endl;
}
//法三
#include<iostream>
using namespace std;
int main(void){
int n,r,w=1;
double result=0;
cout<<"请输入一个二进制数:";
cin>>n;
do{
r=n%10;
result=result+r*w;
w=w*2;
n=n/10;
}while(n!=0);
cout<<result<<endl;
system("pause");
return 0;
}
![]()