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

Abh*_*wal 5 c++ string qt qbytearray

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

QString a = "AF5603B4"
Run Code Online (Sandbox Code Playgroud)

应存储QByteArray为:

QByteArray ba[4] = { 0xAF, 0x56, 0x03, 0xB4 }
Run Code Online (Sandbox Code Playgroud)

如何在Qt 5.9中做到这一点?我尝试使用许多方法,但是所有这些方法都会将字符串字符转换为它们的ASCII值,然后给出该十六进制值。

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

Far*_*had 9

您可以使用这样的ByteArray::fromHex功能:

QString MyHexString ="AF5603B4";
QByteArray cmd = QByteArray::fromHex(MyHexString.toUtf8());
Run Code Online (Sandbox Code Playgroud)

输出

截屏

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

QByteArray cmd;
QString NewHexString = cmd.toHex();
Run Code Online (Sandbox Code Playgroud)