Думаю, я здесь как бы в растерянности. Я пробую такую простую вещь, я не могу поверить, что нет ничего встроенного в 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, или, может быть, задаете неправильный вопрос ...
char
,uint16_t
,double
и т. Д. - person bnaecker   schedule 09.05.2018std::reverse
из библиотеки алгоритмов C ++. - person bnaecker   schedule 09.05.2018