• ベストアンサー

配列からのデータ取得

char *tmp; という既にデータがセットされている変数があったとして。 tmp[2],tmp[3]は連続データで、0x401~0x450までの値がセットされているとすると、この連続データの上手な参照の仕方はありますでしょうか。 用途としては、このデータによる処理の振り分けをしたいんですが・・・・ よろしくお願い致します。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

2バイトの数値を、tmp[2],tmp[3]のようなバイト列に入れる場合、上1バイトをtmp[2]に入れるかtmp[3]に入れるかの2通りあります。 前者なら、tmp[2]*256+tmp[3]、後者なら、tmp[3]*256+tmp[2] でいいんじゃないでしょうか。 他には、キャストを使う方法、structを使う方法があります。

f_attck
質問者

お礼

御回答ありがとうございます。 返信が遅くなり申し訳ありません。 御回答大変役に立ちました。

その他の回答 (1)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

>tmp[2],tmp[3]は連続データで、0x401~0x450までの値がセットされているとすると char型は8ビット長ですよ。そんな値がセットできますか。 (0x00~0xffまでではないですか?) その値が必要なら、short型かint型を使ってください。 また、配列の2つの要素(tmp[2],tmp[3])にそんなにたくさんの 連続データをどのようにセットしているのか不思議です。 >上手な参照の仕方はありますでしょうか。 今、どうしているんでしょうか? それが上手ではないと??

f_attck
質問者

お礼

御回答ありがとうございます。 返信が遅くなりもうしわけありません。 御指摘の通り1バイトデータにはそうなんですが 結論は#2の方の言われてるとおりになります。 ありがとうございました。

関連するQ&A