比较Qt中的原始十六进制值?
下面创建一个QbyteArray,它包含一个十六进制值为49的字节。49是写入内存的数据的一个字节,它不是49的ASCII字符串表示形式,49是2个字节比较Qt中的原始十六进制值?,qt,qt4,hex,Qt,Qt4,Hex,下面创建一个QbyteArray,它包含一个十六进制值为49的字节。49是写入内存的数据的一个字节,它不是49的ASCII字符串表示形式,49是2个字节 QByteArray data(QByteArray::fromHex("49")); 在某个时候,我用额外的字节填充数据 data.append(QByteArray::fromHex("7656")) 如何将单个字节与十六进制值进行比较 例如: 这是49个十六进制,是73个十进制: if (data.at(0) == 73) qDeb
QByteArray data(QByteArray::fromHex("49"));
在某个时候,我用额外的字节填充数据
data.append(QByteArray::fromHex("7656"))
如何将单个字节与十六进制值进行比较
例如:
这是49个十六进制,是73个十进制:
if (data.at(0) == 73)
qDebug() << "True"
但我需要使用十六进制值:
if (data.at(0) == WHAT_HERE?("49"))
qDebug() << "True"
在C/C++中,十六进制整数文本的前缀是0x。因此:
如果您在编译时知道它,那么您可以执行0x49 如果你得到一个QString来比较它,那么
QString test="47";
bool ok;
int result = test.toInt(&ok,16);
if(ok && data.at(0)==result){
//they are equal
}
QString test="47";
bool ok;
int result = test.toInt(&ok,16);
if(ok && data.at(0)==result){
//they are equal
}