基础练习 十六进制转十进制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char map[100000];
while(scanf("%s",map)!=EOF)
{
long long ans=0;
int len=strlen(map);
for(int i=0;i<len;i++)
{
int yy;
if(map[i]>='0'&&map[i]<='9')
{
yy=map[i]-'0';
}
else
{
yy=map[i]-55;
}
ans+=(yy*pow(16,len-i-1));
}
printf("%lld\n",ans);
}
return 0;
}