十进制转别的模除,别的转十进制乘加。记住了。
另外这题还是不严谨,没说明字符串几位,多了就得大数处理了。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <stack>
#include <cctype>
#include <climits>
using namespace std;
const int MAXN = 1005;
const int INF = INT_MAX;
int CharToInt(char x){
if(x >= '0' && x <= '9') return (x - '0');
else if(x >= 'a' && x <= 'f') return (10 + x - 'a');
}
int main(){
// freopen("in.txt", "r", stdin);
string str;
while(cin >> str){
str.erase(0, 2);
long long ans = 0;
for(int i = 0; i < str.size(); i++){
if(isupper(str[i])) str[i] = tolower(str[i]);
ans *= 16;
ans += CharToIn