BASIC-11 基础练习 十六进制转十进制

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

65535


代码:

#include<cstdio>  
#include<cmath>  
#include<cstring>  
  
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;  
}   


猜你喜欢

转载自blog.csdn.net/xnh_565175944/article/details/80193649