我被一个简单的问题困住了。这是代码:
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)
.