将Integer转换为Little Endian十六进制字符串

Convert Integer to Little Endian Hex String

本文关键字:Endian 十六进制 字符串 Little Integer 转换      更新时间:2023-10-16

我正在尝试将一个整数转换为小端十六进制字符串。我可以得到一个小的endian十六进制长度,但我不知道如何从那里转换为字符串。

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

或者,有没有一种方法可以直接从整数到小端十六进制字符串?

谢谢。

使用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();

对于便携式解决方案,只需屏蔽并转移:

while (iNum != 0) {
    int byte = iNum & 0x0F;
    std::cout << std::hex << byte;
    iNum /= 16;
}