问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
     FFFF
样例输出

     65535

AC代码:


#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int len, i, t;
long long int N = 0;
char w[8];
gets(w);
len = strlen(w);
for(i = 0; w[i] != '\0'; i++)
{
switch(w[i])
{
case'A':
t = 10;
break;
case'B':
t = 11;
break;
case'C':
t = 12;
break;
case'D':
t = 13;
break;
case'E':
t = 14;
break;
case'F':
t = 15;
break;
default:
t = w[i] - '0';
break;
}
N = N + t * pow(16, len - 1 - i);
}
printf("%I64d\n", N);
return 0;
}