下面这段代码,如果分别在大端和小端机上运行,结果会有什么差异呢?<br /><br />static WORD32 F(WORD32 data, WORD32 key) <br />{ <br /> WORD32 t; <br /> BYTE v[4], u; <br /> <br /> /* Key Insersion */ <br /> t = data+key; <br /> <br /> /* Secret Constant */ <br /> v[3] = (BYTE)((t>>24)&0xff); <br /> v[2] = (BYTE)((t>>16)&0xff); <br /> v[1] = (BYTE)((t>> 8)&0xff); <br /> v[0] = SecretConstant[t&0xff]; <br /> u = v[0]^0x65; v[1] ^= lrot8(u,1); <br /> u = v[0]^0x2b; v[2] ^= lrot8(u,5); <br /> u = v[0]^0xc9; v[3] ^= lrot8(u,2); <br /> <br /> /* Rotate */ <br /> t = ((WORD32)v[3]<<24)|((WORD32)v[2]<<16)|((WORD32)v[1]<<8)|(WORD32)v[0]; <br /> t ^= lrot32(t,9) ^ lrot32(t,22); <br /> <br /> return t; <br />} <br /> |
|