我有一个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
名字"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));
它将以大端顺序附加短值