1

16 進数の配列があり、それを文字列に変換する必要があります。

私の配列:

// declaration
unsigned char HEX_bufferMessage[12];

// initialize
    HEX_bufferMessage[0] = 0xF0;
    HEX_bufferMessage[1] = 0x15;
    HEX_bufferMessage[2] = 0x31;
    HEX_bufferMessage[3] = 0x02;
    HEX_bufferMessage[4] = 0x03;
    HEX_bufferMessage[5] = 0x00;
    HEX_bufferMessage[6] = 0x00;
    HEX_bufferMessage[7] = 0xD1;
    HEX_bufferMessage[8] = 0xD1;
    HEX_bufferMessage[9] = 0x00;
    HEX_bufferMessage[10] = 0x00;
    HEX_bufferMessage[11] = 0xF7;

これらの情報は 16 進数形式しかないので、文字列に変換する必要があります。誰が私がそれを行うことができる方法を知っていますか??

ありがとうございました!!

4

6 に答える 6

3

パーティーに遅れましたが、使用したすべての回答が16 進値を16 進値std::to_string()として出力できないため、次の方法で出力をフォーマットできるストリームに送信することをお勧めします。std::hex

std::cout << "0x" << std::hex << HEX_bufferMessage[0] << std::endl;

または、文字列で使用する場合:

std::string to_hex_string( const unsigned int i ) {
    std::stringstream s;
    s << "0x" << std::hex << i;
    return s.str();
}

または一行でも:

// ...
return (static_cast<std::stringstream const&>(std::stringstream() << "0x" << std::hex << i)).str();
于 2015-01-20T15:35:55.820 に答える