私は簡単な問題で立ち往生しています。コードは次のとおりです。
int main(int argc, char **argv)
{
char buf[2] = {0xd, 0x1f};
unsigned int a;
a = ((buf[1] << 8) & 0xFF00) | buf[0];
printf("%d\n",a);
return 0;
}
a必要な値はです0x1FD(509)が、上記のプログラムを実行したときの出力はaです0x1F0D(7949)。
どうすればこれを達成できますか?
編集:わかりました。明確にさせてください。コードスニペットに示すように、データを受け取るプロジェクトを行っています。簡単にするために、 local と宣言しました。主なことは、データを として解釈すること0x1FD(509)です。