• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ数値を16進文字列でprintfしたい。)

16進数のデータを文字列に変換する方法

このQ&Aのポイント
  • データ数値を16進数の文字列に変換する方法について説明します。
  • 特定の位置の6バイトのデータを取り出し、そのデータを16進数の文字列に変換して出力する方法について解説します。
  • この方法を使うことで、クライアントのシリアル番号を文字列として表示し、クライアントPCを識別することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「文字に変換する」って, どういうこと? 単に %x で出しちゃいかんの?

diy_sunny
質問者

お礼

(◎○◎) 大変もうしわけありません。確かにそれで出ますね。助かりましたw

その他の回答 (1)

回答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]); }

diy_sunny
質問者

お礼

(◎○◎) 大変もうしわけありません。確かにそれで出ますね。助かりましたw また、いろいろと細かいコードもありがとうございます。

関連するQ&A

専門家に質問してみよう