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

时间:2017-09-06 04:18:50

标签: c++ string qt qbytearray

我需要转换一个#include <stdio.h> #include <stdlib.h> void set(int ** results, int num){ *results = malloc(sizeof(int)); **results = num; } int main(void) { int * num_results = NULL; int num = 4; set(&num_results, num); printf("%d\n", *num_results); return 0; }  已经是十六进制格式的QString。例如:

QByteArray

应存储在QString a = "AF5603B4" 中:

QByteArray

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

我找到了在C#中使用的QByteArray ba[4] = { 0xAF, 0x56, 0x03, 0xB4 } 方法;我可以使用Qt中的等价物吗?

1 个答案:

答案 0 :(得分:1)

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

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

输出

Screenshot

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

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