我正在尝试将整数转换为小尾数十六进制字符串。我可以得到一个小的十字架十六进制长,但我不知道如何从那里转换为字符串。
int iNum = 17706;
// convert to long little endian hex
long lNum = (long)_byteswap_ushort(iNum);
// convert to string??
或者,有没有办法直接从整数到小端十六进制字符串?
感谢。
答案 0 :(得分:1)
使用std::stringstream
格式化字符串。
此外,使用_byteswap_ulong
或大量的内容将不准确。
long iNum = 17706;
// convert to long little endian hex
long lNum = (long)_byteswap_ulong(iNum);
// convert to string
std::ostringstream oss;
oss << std::hex << lNum;
std::string mystring = oss.str();
答案 1 :(得分:0)
对于便携式解决方案,只需掩盖并转移:
while (iNum != 0) {
int byte = iNum & 0x0F;
std::cout << std::hex << byte;
iNum /= 16;
}