Tsinsen A1013 进制转换4

来源:互联网 发布:阿里云代理加盟 编辑:程序博客网 时间:2024/06/14 22:12
A1013. 进制转换4
时间限制:1.0s  内存限制:512.0MB 
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

#include<stdio.h>
#include<math.h>
int main()
{
       int a[10], i, j,sum=0;                               //----->sum 在8位的时候溢出(由于自己系统是64位操作系统,int与long都是4byte)
       for (i = 0; (a[i] = getchar()) != '\n'; i++)
       {
            if (a[i] < 65)
           {
                  a[i] -= 48;
           }
           else
          {   
                 a[i] -= 55;
          }
      }
      for (i--,j=0; i >= 0; i--,j++)
     {
           sum += pow(16, j)*a[i];
     }
     printf("%d\n", sum);
     return 0;
}