у меня есть 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
Как объяснено в документация:
QByteArray :: setNum () устанавливает в байтовом массиве значение n в базовой базе (по умолчанию 10) и возвращает ссылку на байтовый массив. База может иметь любое значение от 2 до 36.
Очевидно, что он дает размер 3, поскольку вы устанавливаете массив из 3 байтов.
for (int i = 0; i < 2; i++) {
B2.append(myint >> (i * 8));
}
Если вы пытаетесь добавить короткое значение (2 байта), вы можете сделать это
B2.append((char)((myint & 0xFF00) >> 8));
B2.append((char)(myint & 0x00FF));
Это добавит короткое значение в порядке с прямым порядком байтов