QByteArray 高低位
时间: 2023-09-02 13:09:56 浏览: 165
参数QByteArray的校验ModbusCRC16.docx
在使用QByteArray进行高低位存储时,需要注意以下几点:
1. 在大多数情况下,高位字节应该存储在数组的前面,低位字节应该存储在数组的后面。例如,对于16位整型数据,高位字节先存储,低位字节后存储。
2. 对于多字节数据类型,如16位整型、32位整型、64位整型、float、double等,需要将其按照一定顺序进行拆分,并将每个字节存储到QByteArray中。
3. 在读取QByteArray中的数据时,需要按照相应的顺序进行组合。对于多字节数据类型,需要将每个字节按照相应的顺序组合成一个完整的数据类型。
下面是一个16位整型数据的高低位存储示例:
```cpp
quint16 data = 0x1234; // 假设data为16位整型数据
QByteArray bytes;
bytes.append((char)(data >> 8)); // 高位字节存储在数组的前面
bytes.append((char)(data & 0xFF)); // 低位字节存储在数组的后面
```
在读取QByteArray中的数据时,需要按照相反的顺序进行组合:
```cpp
quint16 data = ((quint16)bytes[0] << 8) | (quint16)bytes[1];
```
需要注意的是,在进行位运算时,需要将char类型的字节转换为无符号整型(如quint8或quint16),避免出现负数。
阅读全文