Qt:将 QString 转换为十六进制

新手上路,请多包涵

我知道这是一个非常基本的问题,但我是 Qt 的新手,我不知道该怎么做。我正在尝试将 QString 值(如“AA110011”)转换为十六进制。我想获得 0xaa110011。我试过这段代码:

 QByteArray b = aString.toUtf8();

for (int i = 0; i < b.length(); i++ )
{
    if ( b[i] >= 65 && b[i] <= 70 )
    {
        b[i] = b[i] - 55;
    }
    else if (b[i] >= 48 && b[i] <= 57)
    {
        b[i] = b[i] - 48;
    }
}

我在 Vairable “[0]” 的内存中获得值 0a 0a 01 01 00 00 01 01,但我不知道如何获得 aa 11 00 11。

你可以帮帮我吗?谢谢。

原文由 Jafuentes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

使用 QByteArray::fromHex()

 QByteArray a = QByteArray::fromHex(s.toLatin1())
qDebug() << a;

原文由 sfz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题