QByteArray at 和十六进制数的比较

QByteArray array;

查看帮助文档可以知道 array.at(i) 返回的类型为char 类型

char QByteArray::at(int i) const

Returns the character at index position i in the byte array.

i must be a valid index position in the byte array (i.e., 0 <= i < size()).

See also operator[]().
char的取值范围是-128~127

因此在使用array.at(i)过程中应该注意,判断是否和某个十六制作数是否相当时可以在十六进制前面加个强制转换(char)

即 if(array.at(i) ==(char)0x 0F)

switch(array.at(i)){

.

case (char)0x 0F:

break;

.

}

这个和十六进制数比较经常使用到。

 

另外可以参考这篇文章: 关于QByteArray的>127的数字错误问题

https://blog.csdn.net/fgddragon/article/details/80200081?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

你可能感兴趣的:(Qt)