把一个二进制数转化为十进制数。
输入格式
第一行一个正整数 n\ (1\le n\le 30)n (1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
输出格式
输出一个整数,表示对应的十进制数。
输入输出示例
输入 | 输出 |
5 10101 | 21 |
解题思路
利用数组来记录输入的二进制,其次要理解二进制转化为十进制的公式。之后利用循环将结果输出。
代码
#include<stdio.h>
#include<math.h>
int main()
{
char b[100];
long int i,n,x=0;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%c",&b[i]);
}
for(i=0;i<n;i++)
{
if(b[i]=='1'){
x+=pow(2,n-i-1);
}
else{
x+=0;
}
}
printf("%d",x);
return 0;
}