добавление номера в QByteArray

у меня есть QbyteArray названный "B2",

и я хочу добавить к этому 2-байтовое число, как 300,

но когда я это делаю mybyte.size() становиться 3byte!!!!

мой код:

Я хочу, чтобы это стало 2 байта.

    QByteArray B2;
short int myint;
myint=300;
B2.setNum(myint);
qDebug()<<B2[0]<<B2.size();

и это мой вывод:

3 3

3

Решение

Как объяснено в документация:

QByteArray :: setNum () устанавливает в байтовом массиве значение n в базовой базе (по умолчанию 10) и возвращает ссылку на байтовый массив. База может иметь любое значение от 2 до 36.

Очевидно, что он дает размер 3, поскольку вы устанавливаете массив из 3 байтов.

for (int i = 0; i < 2; i++) {
B2.append(myint >> (i * 8));
}
3

Другие решения

Если вы пытаетесь добавить короткое значение (2 байта), вы можете сделать это

B2.append((char)((myint & 0xFF00) >> 8));
B2.append((char)(myint & 0x00FF));

Это добавит короткое значение в порядке с прямым порядком байтов

0

По вопросам рекламы [email protected]