Qt:将QString转换为十六进制
Qt: Convert QString to Hexadecimal
我知道这是一个非常基本的问题,但我是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 01 01 01,我不知道如何获得aa 11 00 11。
你能帮我吗?谢谢
尝试QString::toInt、QString::toUInt、QString::toLong等,例如:
const QString str = QLatin1String("AA110011");
bool ok;
const unsigned int parsedValue = str.toUInt(&ok, 16);
if (!ok) {
//Parsing failed, handle error here
}
qDebug() << parsedValue;
第二个参数是基数,在本例中为16表示十六进制。
如果您的字符串适合无符号长-长或短字符串,则此解决方案将起作用——如果您希望以这种方式转换任意长的字符串,则该解决方案将不起作用。
一旦有了QString,就可以执行以下
QString res = string.toAscii().toHex();
qDebug() << res;
参考
QString prgName = query.value(1).toString();
prgName.toLatin1().toHex();
使用QByteArray::fromHex()
QByteArray a = QByteArray::fromHex(s.toLatin1())
qDebug() << a;
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将十六进制转换为 DEC
- 将字符指针中的十六进制转换为十进制
- 使用 std::hex 将十六进制转换为十进制
- 将40个字节长的数据框从十六进制转换为二进制,然后转换为十进制
- 如何将十六进制转换为十进制
- 在C++中将十六进制转换为uint8_t
- 从十六进制转换为LPCVoid,切断了一半地址
- 将十六进制转换为可打印的字符串/字符
- 将 QString 十六进制转换为 ASCII 值
- 我如何在 C++ 中将变量从十六进制转换为 dec
- 混淆在C++中将十六进制转换为二进制
- C++中的十进制到十六进制转换代码
- 如何在C++中将十六进制转换为IEEE 754 32位浮点
- 十进制到十六进制转换错误
- 十进制到十六进制转换c++内置函数
- 如何将十六进制转换为字符串?C++
- 将 3d 数组元素从十六进制转换为二进制以获得 bmp
- C++:将十六进制转换为十进制
- 将十六进制转换为签名的十二月