【发布时间】:2020-07-10 11:05:18
【问题描述】:
我最近在想用 QDataStream 填充 QByteArray 类型时遇到一个问题。 QDataStream 可以设置字节顺序。
uint16_t data[2] = {10, 20};
QByteArray array;
QDataStream in(&array, QIODevice::ReadWrite);
in.setVersion(QDataStream::Qt_5_7);
in.setByteOrder(QDataStream::BigEndian);
in.writeRawData((char*)data, 4);
qDebug()<<(int)array[0]<<(int)array[1]<<(int)array[2]<<(int)array[3];
这段代码在下面输出:
10 0 20 0
如果我将 ByteOrder 从 BigEndian 更改为 LittleEndian,则输出相同。为什么我更改 ByteOrder 并收到相同的结果?我认为输出应该如下所示:
0 10 0 20
如果我想得到相反的结果,我应该怎么做?
【问题讨论】: