Я думаю, что я немного растерялся. Я пробую такую простую вещь, я не могу поверить, что в Qt нет ничего встроенного (используя Qt 5.6.2). Я пытаюсь преобразовать данные внутри QByteArray с обратного порядка байтов. Всегда начинается с одного и того же теста QByteArray, как этот.
QByteArray value;
value.append(0x01);
value.append(0x02);
value.append(0x03);
qDebug() << "Original value is: " << value.toHex(); // “010203” like expected
Что мне нужно, так это младший порядок байтов, что означает, что на выходе должно быть «030201». Есть ли какая-то вещь в Qt Framework? Я не нахожу один. Что я пробовал до сих пор
// Try with build in QtEndian stuff
QByteArray test = qToLittleEndian(value);
qDebug() << "Test value is: " << test.toHex(); // 010203
// Try via QDataStream
QByteArray data;
QDataStream out(&data, QIODevice::ReadWrite);
out.setByteOrder(QDataStream::LittleEndian);
out << value;
qDebug() << "Changed value is: " << data.toHex(); // "03000000010203"
Есть хорошая идея? Или мне действительно нужно переложить руки? Не нашел ничего полезного на SO или на Google или, возможно, задать неправильный вопрос ...