このデータパケットは、TCP/IPプロトコルを使用してデバイスに送信します。私の配列は:C++で16進文字配列を文字列に変換する方法は?
unsigned char array1[] = {'0x00', '0x84', '0x00', '0x00', '0x00', '0x06', '0x54', '0x01', '0x00', '0x01', '0x00', '0x03'};
私はこれを文字列に変換します。どうすればいいのですか?
今私は手動で10進数を下に書いています:
unsigned char array1[] = {0,132,0,0,0,6,84,5,0,2,255,0};
と文字列に変換する:私は単なる文字列のように私の六角パケットを使用することができます
std::string data (array1, array1 + sizeof array1/sizeof array1[0]);
はしかし、私は疑問に思います直接?
string x= "00 84 00 00 00 06 54 05 00 02 FF 00";
また、変更しない最初の7バイトのメッセージヘッダーを設計する方法はありますか?残りの部分はどのように変更されていますか?
「0x00」は実際には単一の「文字」ではないことに注意してください。マルチバイトの文字リテラルです。おそらく、 'unsigned char array1 [] = {0x00、0x84、...};'? *引用符なし? –
引用符がないと、符号なしの型の警告がスローされます。 –
なぜそれを 'std :: string'としたいのですか?私はこれが "正しい"データ型であることを確信していません。 –