题目描述
将一个二进制数,转换为对应的十进制数。
输入:输入一个只含有’0’和’1’的字符串,以回车结束,表示一个二进制数。该二进制数无符号位,长度不超过31。
输出:输出一个整数,为该二进制数对应的十进制数。
样例输入 Copy
100000000001
样例输出 Copy
2049
分析
二进制转化十进制,我们先看一个例子:1001转化为十进制,1*
+0*
+0*
+1*
,所以我们可以利用这样的思想进行代码编写。
程序代码
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{char a[100];//定义一个字符数组用来存放输入的二进制数gets(a);//读入二进制数int x=strlen(a);//测量二进制字符串的长度int sum=0;//sum为每一次循环的累加值int b=x;//让b等于xfor(int i=0;i<x;i++){sum=sum+(a[i]-'0')*pow(2,b-1);b--;}printf("%d",sum);//输出转换后的十进制数return 0;
}