Description
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535
#include <cstdio>
#include <iostream>
#include <cmath>
#include <
string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
#define ll long long
char a[
20];
ll s[20], sum, x;
int main()
{
sum =
0;
x =
1;
memset(a, 0,
sizeof(a));
while(cin >>
a)
{
sum =
0;
x =
1;
for(
int i = strlen(a)-
1; i >=
0; i--
)
{
if(a[i] >=
'A' && a[i] <=
'Z')sum += (ll)((a[i]-
'A')+
10)*
x;
else if(a[i] >=
'0' && a[i] <=
'9')sum += (ll)(a[i]-
'0')*
x;
x *=
16;
}
printf("%lld\n", sum);
memset(a, 0,
sizeof(a));
}
return 0;
}
转载于:https://www.cnblogs.com/RootVount/p/10383224.html
相关资源:JAVA上百实例源码以及开源项目