1. 程式人生 > >1242 二進位制整數轉十進位制

1242 二進位制整數轉十進位制

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

注意資料範圍!!!

Append Code

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

    return 0;
}