描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:
0xA
0xAA
复制
输出:
10
170
#include <stdio.h>
#include <string.h>
int exe(int a, int b)
{
int tmp = 1;
while(b>0)
{
tmp = tmp * a;
b--;
}
return tmp;
}
int main(int argc, char** argv)
{
int bit;
int val;
char str[32] = {0};
char *p;
while(scanf("%s", str) != EOF)
{
val = 0;
p = str+2;
bit = strlen(p);
while(*p)
{
if((*p)>='A' && (*p)<='Z')
{
val += ((*p) - 'A' + 10) * exe(16, bit-1);
//printf("%d\n", val);
}
else
{
val += ((*p) - '0') * exe(16, bit-1);
}
bit--;
p++;
}
printf("%d\n", val);
}
return 0;
}