---
title: 大小端导致数据差异
description: "测试时发现测试数据出现偏差。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0112.html
sourcePath: /source/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0112.html
indexId: d3bcc26e0a409133cbc8df912e84d3aa4063d39bfc9b3e43d6f3a750837c956a65
---
# 大小端导致数据差异

#### 现象描述

测试时发现测试数据出现偏差。


#### 问题原因

对出现偏差的数据进行分析，测试数据为整型，正常值为31（00000000 00011111），对应的偏差值为7936（00011111 00000000），大小端转换后刚好一致，且代码之前运行在PowerPC上（默认大端字节序）。


#### 处理步骤

1. 修改对应代码添加大小端转换，Short类型大小端转换宏实现。

```
#define SWAP16(x) ((((x)& 0xFF00) >> 8) | (((x)& 0xFF00) << 8))
```


2. 遍历数组进行大小端转换。

```
for(int i = 0;i < RESOLUTION_SIZE;i++){
short tmp = *(pIsmDppsDem50km + i);
tmp = SWAP16(tmp);
*(pIsmDppsDem50km + i) = tmp;
}
```
