问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
直接转化即可,注意数据范围。
code:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<string>
#include <set>
#include<time.h>
using namespace std ;
long long change(char c)
{
int sum=0;
if(c>='0'&&c<='9')
{
sum=c-'0';
}
else
{
sum=c-'A'+10;
}
return sum;
}
int main(int argc, char** argv)
{
char str[10];
long long res=0;
while(scanf("%s",str)!=EOF)
{
res=0;
long long k=1;
for(int i=strlen(str)-1;i>=0;i--)
{
res+=(change(str[i])*k);
k=k*16;
}
cout<<res<<endl;
}
return 0;
}
//寇瑟茹酒