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