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;  
}   

    原文作者:进制转换
    原文地址: https://blog.csdn.net/xnh_565175944/article/details/80193649
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞