C - 二进制换十进制(简单)

把一个二进制数转化为十进制数。

输入格式

第一行一个正整数 n\ (1<= n<= 30)n (1≤n≤30),表示二进制数的长度。

第二行一个二进制数。

输出格式

输出一个整数,表示对应的十进制数。

Sample Input

5
10101

Sample Output

21
#include<stdio.h>
#include<math.h>
int main()
{
 int n,sum=0;//定义sum为总和 
 char b[999];//随便定义了一个较大的数组         
 int i;
 scanf("%d",&n);   
 getchar();      //getchar用于排除换行符          
 for(i=0;i<n;i++){    
  scanf("%c",&b[i]);//输入1个字符存储于b数组 
 }
 for(i=0;i<n;i++){        
  if(b[i]=='1'){//调用数学函数pow指数 
   sum=sum+pow(2,n-i-1); //发现2进制转换为10进制的规律,如1101,右边第一位是1*2^0,第二位是0*2^1, 
  }else{  //第三位是1*2^2,第四位是1*2^3次,发现规律设计程序 
   sum=sum+0;
  }
 }
 printf("%d",sum); //输出二进制转换为10进制的数        
 
 
}

上一篇:字符串反转


下一篇:【洛谷P2184 贪婪大陆】题解