Problem Description
题目很简单,就是把一个二进制数转换为十进制数,然后输出。
Input Description
多组测试数据,第一行一个正整数 n (n<=1000),表示后面有 n 组测试数据,每组一行。
接下来有 n 行,每行为一个不超过32位的二进制数。
Output Description
对每组测试数据,在一行中输出对应的十进制数。
Sample Input
2 0111 1111
Sample Output
7 15
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
char a[33], b[33];
scanf("%s", a);
int len;
int c = 0;
len = strlen(a);
for(int i = 0; i < len; i++)
{
b[i] = a[i] - '0';
if(b[i] == 1)
c = c + pow(2,len - 1 - i);
}
if(i == n - 1)
printf("%d",c);
else
printf("%d\n",c);
}
return 0;
}