二进制换十进制(简单)

二进制换十进制(简单)

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

输入格式
第一行一个正整数 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;		
}

版权声明:本文为weixin_62676902原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。