把二进制转换十进制,循环的地方交换位置为什么出错?
int main(){
cout<<"请输入8位二进制的数:"<<endl;
char ch;
int i=7,sum=0;
for(;i>=0;i--) {
cin>>ch;
if(ch=='1')
sum += power(2,i);
}
cout<<"转换后的十进制数位:"<<sum<<endl;
return 0;
}
double power(double x,int n){
double r=1.0;
while(n--){
r *=x;
}
return r;
}for(;i>=0;) {
i--;
cin>>ch;
if(ch=='1')
sum += power(2,i);
} 二进制 power 循环出错
// 方法1
for(;i>=0;)
{
cin>>ch;
if(ch=='1')
sum += power(2,i);
i--;
}
//方法2
int i = 8;
for(;i>0;)
{
i--;
cin>>ch;
if(ch=='1')
sum += power(2,i);
}