В моем проекте я работаю с QByteArrays, добавляя данные к ним по мере прохождения программы. В большинстве случаев простой quint8
добавляется просто отлично, используя QByteArray::append()
. Но когда quint16
добавляемый, только 1 байт добавляемый вместо 2.Append quint16/unsigned short to QByteArray быстро
QByteArray ba = QByteArray::fromHex("010203");
quint number(300);//300 in hex is 012c
ba.append(number);//What should be appended instead of just number?
//the current incorrect result is
ba.toHex() == "0102032c"
//the desired result is
ba.toHex() == "010203012c"
Я уже пытался, но он просто вставляет значение в виде строки (4 байта):
ba.append(QByteArray::number(number, 16));
Что следует добавить к QByteArray, чтобы оба байта «числа» добавлялись вместо одного байта? Кроме того, самый быстрый способ является предпочтительным, поскольку для этой программы требуется отличное время работы. Так что абсолютно никакого преобразования в QStrings.
Спасибо за ваше время.
Какой смысл вы ожидаете при добавлении 'quint16'? –
Я считаю, большой эндиан. Он должен быть добавлен 012c – mrg95
Чтение документа Я не вижу следа 'QByteArray.append (quint)' ... –