HJ5 进制转换
#include <iostream>
class HJ05 {
public:
static int hex2int(std::string hex) {
int i = 0;
if (hex[i] == '0') {
i += 1;
}
if (hex[i] == 'x' || hex[i] == 'X') {
i += 1;
}
int ans = 0;
for (; i < hex.size(); i++) {
int d = 0;
if ('0' <= hex[i] && hex[i] <= '9') {
d = hex[i] - '0';
} else if ('a' <= hex[i] && hex[i] < 'f') {
d = hex[i] - 'a' + 10;
} else if ('A' <= hex[i] && hex[i] <= 'F') {
d = hex[i] - 'A' + 10;
}
ans = ans * 16 + d;
}
return ans;
}
};
size_t mystrcpy(char* s, const char* cs) {
const char* p = cs;
while (*p) {
*s++ = *p++;
}
*s = '\0';
return p - cs;
}
int main(int argc, char *argv[]) {
HJ05 q;
// char s[BUFSIZ] = {'\0'};
// std::cin.get(s, BUFSIZ).get();
std::string s;
std::cin >> s;
// mystrcpy(s, "0xAA");
std::cout << HJ05::hex2int(s);
return 0;
}