私は簡単な問題で立ち往生しています。コードは次のとおりです。
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)
です。