Qt下正确在QByteArray中保存字节数据的方法

示例代码:

 

QByteArray a;
a.resize(3);
byte b=0xfF;
a[1]=b;
qDebug("a[1]is X%",a[1]);
qDebug("a[1]is %d",QVariant(a[1]).toUInt());
qDebug("a.at(1)is X%",a.at(1));
qDebug("a.at(1)is %d",QVariant(a.at(1)).toUInt());
if(a.at(1)==255)
{
    qDebug("A");
}
if(a.at(1)==0xff)
{
    qDebug("B");
}
if(a[1]==255)
{
    qDebug("C");
}
if(a[1]==0xff)
{
    qDebug("D");
}
qDebug("sizeofbyte is %d",sizeof(a.at(1)));
qDebug()<<QVariant(a.at(1));
qDebug()<<QVariant(a[1]);

 

运行结果:

a[1]is X%
a[1]is -1
a.at(1)is X%
a.at(1)is -1
C
D
sizeofbyte is 1
QVariant(int, -1)
QVariant(int, -1)

由此可见要正确保存8位无符号数(字节数据),可以采用"array[2]=0xff"这样的方法

要判断其数值可以采用“if(array[2]==255)”或“if(array[2]==0xff)”这样的方法。

至于array.at(2),靠边歇着,苦于不知道Qt下如何输出一个量的二进制形式,不然就可以知道array.at(2)保存的到底是个什么了

你可能感兴趣的:(Qt下正确在QByteArray中保存字节数据的方法)