将十六进制字符串转换为 QByteArray

Convert hexadecimal string to QByteArray

我需要将 QString 转换为 已经以十六进制格式转换为 QByteArray。例如:

QString a = "AF5603B4"

应在 QByteArray 中存储为:

QByteArray ba[4] = { 0xAF, 0x56, 0x03, 0xB4 }

我如何在 Qt 5.9 中执行此操作?我尝试过使用许多方法,但所有这些方法都将字符串字符转换为其 ASCII 值,然后给出该十六进制值。

我找到了 Convert.toByte 在 C# 中使用的方法;我可以使用 Qt 中的等效项吗?

您可以像这样使用 ByteArray::fromHex 函数:

QString MyHexString ="AF5603B4";
QByteArray cmd = QByteArray::fromHex(MyHexString.toUtf8());

输出

并将 QByteArray 转换为十六进制字符串:

QByteArray cmd;
QString NewHexString = cmd.toHex();