1.直接处理输入输出
#include <iostream>
#include <string>
using namespace std;
// 0 ~ 9
// a:10
// b:11
// c:12
// d:13
// e:14
// f:15
int main()
{
int x;
while(cin >> hex >> x)
cout << x << endl;
return 0;
}
2.正常写法
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while(cin >> str)
{
// 处理正负号
int sign = 1;
if(str[0] == '-')
{
sign = -1;
// 去除最前面的负号
str = str.substr(1);
}
// 去除Ox
str = str.substr(2);
int res = 0;
// 遍历
for(auto s : str)
{
int t;
if(s >= 'A' && s <= 'F') t = s - 'A' + 10;
else if(s >= 'a' && s <= 'f') t = s - 'a' + 10;
else t = s - '0';
res = res * 16 + t;
}
// 比如十进制的23:2 * 10 ^ 1 + 3 * 10 ^ 0
cout << res * sign << endl;
}
return 0;
}