测试时发现测试数据出现偏差。
对出现偏差的数据进行分析,测试数据为整型,正常值为31(00000000 00011111),对应的偏差值为7936(000011111 00000000),大小端转换后刚好一致,且代码之前运行在PowerPC上(默认大端字节序)。
#define SWAP16(x) ((((x)& 0xFF00) >> 8) | (((x)& 0xFF00) << 8))
for(int i = 0;i < RESOLUTION_SIZE;i++){ short tmp = *(pIsmDppsDem50km + i); tmp = SWAP16(tmp); *(pIsmDppsDem50km + i) = tmp; }