问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
注意:数组开到1万就可以了,如果题目未标明数的具体大小,数组应尽量开打点。
知识点:求一个数m的n次方的函数为:pow(m,n);头文件为#include <cmath>
代码:
注意:数组开到1万就可以了,如果题目未标明数的具体大小,数组应尽量开打点。
知识点:求一个数m的n次方的函数为:pow(m,n);头文件为#include <cmath>
代码:
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
char s[10000];
cin>>s;
int len=strlen(s);
long long int ans=0;
for(int i=0;i<len;i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]=int(s[i]-'A')+10+'0';
}
ans+=((s[i]-'0')*(pow(16,len-1-i)));
}
cout<<ans<<endl;
return 0;
}