1. 程式人生 > >山科大OJ-Problem 1242: 二進位制整數轉十進位制

山科大OJ-Problem 1242: 二進位制整數轉十進位制

Problem A: 二進位制整數轉十進位制

Time Limit: 1 Sec  Memory Limit: 2 MBSubmit: 8496  Solved: 3159[Submit][Status][Web Board]

Description

給出一個二進位制的非負整數x,x<232,把它轉換成十進位制數輸出。

Input

輸入為多行,每行一個二進位制非負整數x。

Output

每行輸出x對應的十進位制數值。

Sample Input

0 1 01 10 11 100001 1111111111111111

Sample Output

0 1
1 2 3 33 65535

HINT

 注意資料範圍!!!

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	char a[33];
	long long int i,n,sum;
	while(scanf("%s",a)!=EOF)
	{
		sum=0;
		n=strlen(a);
		for(i=n-1;i>=0;i--)
			sum+=(a[i]-'0')*((long long int)pow(2,n-1-i));
		printf("%lld\n",sum);
	}
}