SInt32和<<的问题
|
我有以下简单的代码:
char data[4] = { 0x13, 0x34, 0xad, 0xff };
int s = 0;
SInt32 tmp = data[s++]<<24;
printf(\"tmp= %x\\n\",tmp);
tmp += (data[s++]<<16);
printf(\"tmp= %x\\n\",tmp);
tmp += (data[s++]<<8);
printf(\"tmp= %x\\n\",tmp);
tmp += (data[s++]);
printf(\"tmp= %x\\n\",tmp);
我期望的输出是
tmp= 13000000
tmp= 13340000
tmp= 1334ad00
tmp= 1334adff
相反,我得到
tmp= 13000000
tmp= 13340000
tmp= 1333ad00
tmp= 1333acff
有人可以解释我为什么吗?
没有找到相关结果
已邀请:
1 个回复
联海