题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:
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;
}