0

整数をリトルエンディアンの16進文字列に変換しようとしています。少しエンディアンの16進数の長さに到達できますが、そこから文字列に変換する方法がわかりません。

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

または、整数からリトルエンディアンの16進文字列に直接移行する方法はありますか?

ありがとう。

4

2 に答える 2

1

std::stringstream文字列のフォーマットに使用します。

また、使用_byteswap_ulongまたは大きなintは正確ではありません。

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 に答える