Недавно я встретил вопрос, когда хочу заполнить тип QByteArray с помощью QDataStream. QDataStream может установить Byteorder.
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
Если я хочу получить обратный результат, как мне поступить?