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

标签 c++ string qt qbytearray

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

QString a = "AF5603B4"

应存储在 QByteArray 中:

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

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

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

最佳答案

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

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

输出:

Screenshot

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

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

关于c++ - 将十六进制字符串转换为 QByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066718/

相关文章:

qt - 在 QTableWidget 中禁用键盘搜索

c++ - 使用递归检查回文

c++ - QVector 不追加!

Java 字符串构造函数优化

PHP - 选择两个字符之间的字符串的一部分

c++ - QML 中的着色器插件安装

linux - 交叉编译Qt5.10.1 Raspberry pi3 B+ stretch

c++ - 一次使用多个共享内存实例

c++ - 忽略几个不同的词.. c++?

java - Java中如何将十六进制字符串转换为字节数组