资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
直接模拟:FFFF = > 15*(16^3)+15*(16^2)+15*(16^1)+15*(16^0)
#include<bits/stdc++.h>
using namespace std;
string a;
long long b;
int main() {
cin>>a;
long long k=0;
long long r=1;
for(int i=a.length(); i>=0; i--) {
if(a[i]>='0'&&a[i]<='9') {
b+=r*(a[i]-'0');
r*=16;
} else if(a[i]>='A'&&a[i]<='F') {
b+=r*(a[i]-'A'+10);
r*=16;
}
}
cout<<b<<endl;
return 0;
}