十六进制转换十进制
Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others)
Total Submissions: 9 Accepted Submissions: 0
Problem Description
把十六进制整数转换为十进制,格式为0X开头,1015用大写字母AF表示。
Input
每行一个整数x,0 < = x < = 2^31。
Output
每行输出对应的十进制整数。
Sample Input
0X0
0X3FF
Sample Output
0
1023
#include <stdio.h>
#include <string.h>
int main()
{
char s[200];
char a,b;
while(~scanf("%c%c",&a,&b))
{
memset(s,0,sizeof(s));
gets(s);
int num = 0;
int k = 1;
for(int i = strlen(s)-1;i>=0;i--)
{
num += (s[i]>='A'&&s[i]<='F') ? (s[i]-'A'+10)*k : (s[i]-'0')*k;
k *= 16;
}
printf("%d\n",num);
}
return 0;
}