问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
/*十六进制转化成十进制*/
#include <stdio.h>
#include <string.h>
char _16_string[10];
int main(int argc,char ** argv){
while (scanf("%s",_16_string) == 1) {
long long int len = strlen(_16_string);
long long int num = 0;
int i = 0;
for (; i < len; i++) {
if (!isalpha(_16_string[i])) {
num = num * 16 + _16_string[i] - '0';
}else{
num = num * 16 + _16_string[i] - 'A' + 10;
}
}
printf("%lld",num);
}
return 0;
}