算法打卡day8-进制转换

92 阅读1分钟

题目描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

数据范围:

1 <=n <= 2 31-1

输入描述:

输入一个十六进制的数值字符串

输出描述:

输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例1a

输入:
0xAA
输出:
170

具体实现

#include <stdio.h>
int main() {
    char ch[100];
    gets(ch);
    int res = 0, num;
    int i = 0;
    while (ch[i] != '\0') {
        if (i > 1) {
            if (ch[i] >= '0' && ch[i] <= '9') {
                num = ch[i] - '0';
            } else if (ch[i] >= 'A' && ch[i] <= 'G') {
                num = ch[i] - 'A' + 10;
            }
            res *= 16;
            res += num;
        }
        i++;
    }
    printf("%d\n", res);
    return 0;
}