问题:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
想问一下我这个哪里错了
#include
#include
int main()
{
char a[8] = { 0 } ;
int i=0, len=0;
long long sum = 0;
gets(a);
len = strlen(a);
for (i = len; 0 < i; i--)
{
if (a[i] >= '0' && a[i] <='9')
{
sum = 16 * sum + a[i];
}
if (a[i] >= 'A' && a[i] <= 'F')
{
sum = 16 * sum + a[i] - 'A' + 10;
}
}
printf("%lld", sum);
}