把一个二进制数转化为十进制数。
输入格式
第一行一个正整数 n\ (1\le n\le 30)n (1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
输出格式
输出一个整数,表示对应的十进制数。
Sample Input
5 10101
Sample Output
21
思路:设一个循环计算2进制中每一位输入的值是0还是1,将此值乘2,再累加。
#include<stdio.h>
#include<math.h>
int main()
{
int a=0,n;
scanf("%d",&n);
getchar();//用getchar一个一个输入
while(n--){
a*=2;//将值乘2
a+=getchar()-'0';//将值累加
}
printf("%d",a);
return 0;
}