- ベストアンサー
C言語の配列の扱い
次のような配列bufと変数dataを宣言して bufの中身をdataにコピーしたいのですが、 buf[0]のみで、buf[1]の値が入りません。 具体的には、buf[0]には16進数で0x3f、 buf[1]には0x3aが入っていて、 dataの値を0x3a3fにしたいのです。 教えてください。 ***************************** unsigned char buf[2]; unsigned short data; data = (unsigned short)*buf; *****************************
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
data = *(unsigned short*)buf; ではいかがでしょう。
その他の回答 (1)
noname#15691
回答No.2
CPUのエンディアンが違っても質問通りにしたいなら、 data = ((unsigned short)buf[1] << 8) | buf[0]; こうですかね。
質問者
お礼
ご回答いただきありがとうございます。 参考にさせていただきます。
お礼
早速のご回答ありがとうございました。 無事解決して大変助かりました。<(_ _)>