2
我有了這個簡單的代碼:問題的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
有人五月解釋我爲什麼?
是的,經過短暫的調試,我到達了相同的解決方案。 :) – Saphrosit 2011-06-14 18:26:15