将数字添加到QByteArray

时间:2012-12-13 08:45:51

标签: c++ qt short qbytearray

我有一个名为QbyteArray的{​​{1}},

我想添加一个2字节的数字,如"B2"

但当我这样做时300成为mybyte.size()

我的代码是:

我希望它变成2byte。

3byte!!!!

这是我的输出:

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

2 个答案:

答案 0 :(得分:3)

正如documentation

中所述
  

QByteArray :: setNum()将字节数组设置为基数为n的打印值(默认为10),并返回对字节数组的引用。基数可以是2到36之间的任何值。

很明显它给你的大小为3,因为你设置了一个3字节的数组。

更新

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

答案 1 :(得分:0)

如果您尝试添加短值(2字节),则可以执行此操作

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

它将以大端顺序附加短值