小编rae*_*hee的帖子

在qt中将十六进制转换为二进制

我必须从 MODbus 应用程序读取原始数据并将其转换为十六进制。在 MODbus 中,它以二进制和十六进制显示。假设我想读取 5 位 =00011并且当我将它转换为十六进制时它变成了 0x03 但是当我再次将它从十六进制转换为二进制时。它显示在我的 UI 中,就像这样 = 11only,剩下的 3 个零000消失了。这是我的编码:

if (my_arguments.num_of_points <=8) 
{
    for(int x = 0; x < 1; x++)
    {
        block33.append(block22[9+x]);
    }
}

hexVal = block33.toHex(); //for converting to binary
stringValue = "0x " + block33.toHex().toUpper();  //display hex raw value

QString hexadecimalNumber = hexVal;

bool ok = false;

QString binaryNumber = QString::number(hexadecimalNumber.toLongLong(&ok, 16),2);

ui->textEdit->append(binaryNumber);

ui->textEdit->setText("RawValue in Hex = " + hex_rawValue );
Run Code Online (Sandbox Code Playgroud)

输出 =

  RawValue in …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt-creator

-4
推荐指数
1
解决办法
5324
查看次数

标签 统计

c++ ×1

qt ×1

qt-creator ×1