3

我有一个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 
4

2 回答 2

3

文档中所述:

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

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

更新

for (int i = 0; i < 2; i++) {
  B2.append(myint >> (i * 8));
}
于 2012-12-13T08:56:30.083 回答
0

如果您尝试添加一个短值(2 字节),您可以这样做

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

它将以大端顺序附加短值

于 2012-12-13T09:42:05.367 回答