c++stringqtqbytearray

Convert hexadecimal string to QByteArray


I need to convert a QString which is already in hexadecimal format to a QByteArray. For example:

QString a = "AF5603B4"

Should be stored in QByteArray as:

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

How do I do this in Qt 5.9? I have tried using many methods but all of these convert the string characters to their ASCII values and then give that hexadecimal value.

I found Convert.toByte method to use in C# ; is there an equivalent in Qt I can use?


Solution

  • You can use ByteArray::fromHex function like this:

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

    Output:

    Screenshot

    And to convert QByteArray to Hex string:

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