2017-08-28 12 views
-2

uint8_t配列にHEX値を保存します。HEXをuint8_t配列に格納する方法は?

const static uint8_t PSK_KEY[] = "31383031"; 
security->set_resource_value(M2MSecurity::Secretkey, PSK_KEY, sizeof(PSK_KEY) - 1); 

または私はASCIIでPSK_KEYを設定する必要があります。以下は、私はリソース値を設定するために使用し、それをパスしようとしているコードはありますか?

+1

どういう意味ですか?あなたのコードは既にASCIIを使用しています。 '" 31383031 "' – Lundin

+0

なぜこの例に関連してキーサイズから1を引いたのですか?https://docs.mbed.com/docs/mbed-client-guide/en/latest/Howto/これは完了していませんか? –

+1

これは有効なCコードではありません。正しい言語タグを使用し、関連していないタグでスパムしないでください。 – Gerhardh

答えて

2

を使用することができます。

「店舗ヘキサ」(なぜそれを大文字で書くのですか)は少し不明です。

PSKの値が4バイト0x31、0x38、0x30の場合には、0x31は、あなたが適切な結果を得るために、異なることを記述する必要があります。あなたのよう

もちろんの
static const uint8_t PSK_KEY[] = { 0x31, 0x38, 0x30, 0x31 }; 

は、これら4つは、ASCIIですテキストと同じデータを表現できます。

static const uint8_t PSK_KE[] = "1801"; 
+0

実際には "31383031"は​​16進数のフォーマットである – prem

+0

@prem確かに、Cのリテラルでは、結果が16進数で与えられた値を持つバイトを保持する4バイト配列になりません。もちろん、代わりに9バイトの文字列になります。 – unwind

0

あなたはそれはあなたが何を意味するかに依存し

PSK_KEY[]= { 0x31,0x38,0x30,0x31}

OR

PSK_KEY[]= { '1','8','0','1'}

関連する問題