从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char s[8];
while(cin>>s){
int len= strlen(s);
long long int m=0,n=16;
for (int i=0;i<len;i++)
{ if(s[i]>='0'&&s[i]<='9')
{ m=m*n+(s[i]-'0');
}
else
m=m*n+(s[i]-'A'+10);
}
cout<<m;
}
return 0;
}
本段代码
例如 十六进制数 11111
第一步 m=0*16+1=1
第二步 m=1*16+1=17
第三步 m=17*16+1=273
第四步 m=273*16+1=4369
第五步 m=4369*16+1=69905