- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ数値を16進文字列でprintfしたい。)
16進数のデータを文字列に変換する方法
このQ&Aのポイント
- データ数値を16進数の文字列に変換する方法について説明します。
- 特定の位置の6バイトのデータを取り出し、そのデータを16進数の文字列に変換して出力する方法について解説します。
- この方法を使うことで、クライアントのシリアル番号を文字列として表示し、クライアントPCを識別することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「文字に変換する」って, どういうこと? 単に %x で出しちゃいかんの?
その他の回答 (1)
- hanabutako
- ベストアンサー率54% (492/895)
回答No.2
#1さんの回答で必要十分だと思いますが、もしかして%02xを知らないのかなと思ったので書きます。 あとは、snprintfやfor文がわからなくて、こういうのをわからないとか? #define SERIAL_SIZE 6 #define OFFSET 0x08 char buf[sizeof(char) * SERIAL_SIZE + 1]; for (int i = 0; i < SERIAL_SIZE; i++) { snprintf(&buf[i * sizeof(char) * 2], 3, "%02x", RecvBuf[OFFSET + i]); } printf("%s", buf); そもそも、printfしたいだけだったらsnprintfを持ち出すまでもなく、もっと単純にこれでよいと思いますが。 for (int i = 0; i < SERIAL_SIZE; i++) { printf("%02x", RecvBuf[OFFSET + i]); }
質問者
お礼
(◎○◎) 大変もうしわけありません。確かにそれで出ますね。助かりましたw また、いろいろと細かいコードもありがとうございます。
お礼
(◎○◎) 大変もうしわけありません。確かにそれで出ますね。助かりましたw