QByteArray值比较

时间:2015-10-15 17:42:18

标签: c++ qt hex comparison qbytearray

为什么声明:

QByteArray data (initialized somehow);
if(data.at(0) == 0xFF)
do_something();

给出了这样的警告: 由于数据类型[-Wtype-limits]的范围有限,比较总是假的。

您可以使用QByteArray值初始化0xff

QByteArray data;
data[0]=0xff;

这没有任何警告或错误,为什么你不能将它与0xff值进行比较?

2 个答案:

答案 0 :(得分:3)

QByteArray是处理const char *的Qt安全方式。 char的范围是-128到127.因此您可以分配或比较您的值:

if(data.at(0) == 0xFF)
{
}

但编译器会生成警告,条件始终为false。由于范围,Char值永远不会是255。它不是unsigned char

答案 1 :(得分:0)

您可以使用以下表达式:

{{1}}