方法1:
template <typename I> std::string n2hexstr(I w, size_t hex_len = sizeof(I)<<1) {
static const char* digits = “0123456789ABCDEF”;
std::string rc(hex_len,’0′);
for (size_t i=0, j=(hex_len-1)*4 ; i<hex_len; ++i,j-=4)
rc[i] = digits[(w>>j) & 0x0f];
return rc;
}
调用 在我的机器上运行 0.03 毫秒。
string ssss = n2hexstr<int>( 0x02, 2 );
方法2:
c++ 自带转方法
std::stringstream ss;
ss<< std::hex << 0x03; // int decimal_value
std::string res ( ss.str() );
用时0.123 毫秒。
方法3:
string DecIntToHexStr(long long num)
{
string str;
long long Temp = num / 16;
int left = num % 16;
if (Temp > 0)
str += DecIntToHexStr(Temp);
if (left < 10)
str += (left + ‘0’);
else
str += (‘A’ + left – 10);
return str;
}
string sssp = DecIntToHexStr(0x02);
用时:0.012毫秒
哪个快一看就知道了。