题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <bits/stdc++.h> using namespace::std;
int main() { string str;
while (getline(cin, str)) {
uint64_t sum = 0;
uint64_t bit = 0;
string head = str.substr(0, 2);
if (head.compare("0x")) {
return -1;
}
for (uint64_t i = str.size()-1; i > 1; i--) {
if (str[i] >= 'A') {
sum += (str[i]-55) * pow(16, bit);
} else if (str[i] >= 'a') {
sum += (str[i]-'a'+10) * pow(16, bit);
} else {
sum += int(str[i]-'0') * pow(16, bit);
}
bit++;
}
cout << sum << endl;
}
return 0;
}