如何使用 testBit 函数检查二进制数组中的特定索引位

How to use a testBit function to check a specific indexed bit in a binary array

本文关键字:索引 数组 testBit 何使用 函数 检查 二进制      更新时间:2023-10-16

我有一个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)

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