我有一个QByteArray,我要提取一个十六进制数字,我想将其分解为单个位。完成此操作后,我想对特定位进行位测试,以检查其是否正确以发送消息。

这是我现在拥有的代码:

if(ID == 65290) {
    QBitArray a(Data_0,16);
    QString z = QString::number(Data_0,2);
    a.testBit(0) = b;
    if(b == true) {
        ui->Test->setText(z);
        m_workerThread->sendMsg(418381594,1,0,0,0,0,0,0,0);
    } else {
        m_workerThread->sendMsg(418381594,0,0,0,0,0,0,0,0);
        ui->Test->setText(z);
    }
}

这不会编译,因为我确定我没有正确使用testBit。 QString就是这样,当我将其转换为二进制时,我可以看到它。 Data_0正在其他地方接收。

我是编程的新手,所以将不胜感激。
谢谢。

最佳答案

我不是Qt专家,但是您似乎正在尝试为函数调用分配值。

请尝试b = a.testBit(0)

问题:您正在通过未知的构造函数创建实例。
编译器是否抱怨第一行?

10-06 07:41