【发布时间】:2015-08-20 00:37:36
【问题描述】:
在我的项目中,我正在使用 QByteArrays 在程序运行时将数据附加到它们。大多数时候,使用QByteArray::append() 可以很好地附加一个简单的quint8。但是当 quint16 被附加时,只附加 1 个字节而不是 2 个。
QByteArray ba = QByteArray::fromHex("010203");
quint number(300);//300 in hex is 012c
ba.append(number);//What should be appended instead of just number?
//the current incorrect result is
ba.toHex() == "0102032c"
//the desired result is
ba.toHex() == "010203012c"
我已经尝试过了,但它只是将值作为字符串(4 个字节)插入:
ba.append(QByteArray::number(number, 16));
我应该将什么附加到 QByteArray 以便“数字”的两个字节都被附加而不是一个字节?此外,由于该程序需要较长的执行时间,因此首选可能的最快方法。所以绝对不能转换为 QStrings。
感谢您的宝贵时间。
【问题讨论】:
-
附加
quint16时,您期望什么字节序? -
我相信大端。应该是 012c 被追加
-
阅读文档我看不到
QByteArray.append(quint)... -
为什么不直接使用
QList<quint16>? -
因为 QByteArray 不仅仅是帖子中所述的一堆 quint16。
标签: c++ qt qbytearray