charをuint8_t形式で保存された16進数に変換する方法は?
質問
これらの変数があるとします ジェネラコディセタグプレ
ndef_input
( "hello"のようなプレーンテキスト)を16進数に変換して、ndef_msg
に保存するにはどうすればよいですか?
ご覧のとおり、ndef_default_msg
は16進形式です。ndef_msg
内のデータもそのようなものである必要があります。
少し背景がありますが、元のプログラム(ソースコード)では、プログラムはファイルを開き、データをndef_msg
に入れ、カードに書き込みます。しかし、データを取得して16進数に変換する方法がわかりません。
プログラムを単純化して、(ファイルを要求するのではなく)ユーザーに直接テキストを要求するようにしたい。
解決
それをndef_msgに直接読み取らないのはなぜですか(純粋な配列であると想定される場合は\ 0を差し引いてください)。16進数は表示用であり、コンテンツに影響を与えることなく、10進数または8進数を選択することもできます。 ジェネラコディセタグプレ
空白を許可し、おそらく一般的なタグコードを無視するために、文字列の読み取りを別の方法で処理する必要があります。これは私のポイントを説明するためだけのものです。
他のヒント
あまりエレガントではないかもしれませんが、単純です。文字コード(0〜255)を目的の値にマップするルックアップテーブルを定義します。 ジェネラコディセタグプレ
このようなエレガントでないソリューションを数回使用しましたが(カラーマッピングなど)、他のファンシーなソリューションと同じように機能しました。
私が正しく理解していれば、ndef_input
に保存されている16進形式のデータを読み取り、それを解析して、ndef_msg
に値を保存します。
使用できます ジェネラコディセタグプレ
ジェネラコディセタグプレ
お役に立てば幸いです ジェネラコディセタグプレ
そしてascii2hexは次のように定義されています: ジェネラコディセタグプレ