二进制换十进制(简单)
把一个二进制数转化为十进制数。
输入格式
第一行一个正整数 n (1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
输出格式
输出一个整数,表示对应的十进制数。
输入
5
10101
输出
21
思路
由题意可得输入正整数的长度最长为30故不能用int定义y应用getchar定义,将y当成字符串输入并进行判断并得出结果。
#include<stdio.h>
#include<math.h>
int main(){
int x,i=0,m=0; //定义变量
char y; //将y用char定义为字符
scanf("%d",&x); //输入字符长度
for(i=x;i>=0;i--){ //进入循环,因getchar会吞掉scanf输入后的回车键;故i=x
y = getchar();
if(y=='1'){ //判断字符y并进行运算
m=pow(2,i)+m;
}
}
printf("%d\n",m);//输出转化后的十进制数
return 0;
}