0

我正在尝试将整数转换为小端十六进制字符串。我可以达到一点点十六进制长,但我不确定如何从那里转换为字符串。

int iNum = 17706; 
// convert to long little endian hex
long lNum = (long)_byteswap_ushort(iNum);
// convert to string??

或者,有没有办法直接从整数到小端十六进制字符串?

谢谢。

4

2 回答 2

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();
于 2012-09-11T23:25:13.467 回答
0

对于便携式解决方案,只需掩码和移位:

while (iNum != 0) {
    int byte = iNum & 0x0F;
    std::cout << std::hex << byte;
    iNum /= 16;
}
于 2012-09-12T14:37:59.847 回答