16进制、2进制与10进制的互相转换
string htoi(string hStr)
{
return std::to_string(std::stoi(hStr, nullptr, 16));
}
string itoh(string iStr)
{
std::stringstream ss;
long long temp = std::atoll(iStr.c_str());
ss.setf(std::ios_base::hex, std::ios_base::basefield);
ss.setf(std::ios_base::showbase);
std::string result;
ss << temp;
ss >> result;
return result;
}
string btoi(string bStr)
{
return std::to_string(std::stoi(bStr, nullptr, 2));
}
string itob(string iStr)
{
int n = std::stoi(iStr, nullptr, 10);
string s = " ";
for (int a = n; a; a = a / 2)
{
s = s + (a % 2 ? '1' : '0');
}
std::reverse(s.begin(), s.end());
return s;
}