QString 如何转 十六进制
时间: 2024-01-12 12:22:09 浏览: 73
可以使用 QString 类的 toUtf8() 方法将 QString 转换为 QByteArray,再利用 QByteArray 类的 toHex() 方法将其转换为十六进制形式的 QByteArray。最后,可以使用 QByteArray 类的 toStdString() 方法将其转换为 std::string 类型,代码示例如下:
```c++
QString str = "Hello World";
QByteArray byteArray = str.toUtf8();
QByteArray hexArray = byteArray.toHex();
std::string hexStr = hexArray.toStdString();
```
这样,hexStr 就是 str 的十六进制形式的字符串了。
相关问题
qstring转十六进制数
QByteArray类中的toHex()方法可以将QByteArray类型的数据转换为十六进制字符串。因此,可以将Qstring类型的数据转换为QByteArray类型的数据,然后再使用toHex()方法转换为十六进制数。
代码示例:
```cpp
QString str = "Hello world";
QByteArray ba = str.toUtf8(); // 将QString转换为QByteArray,使用toUtf8()方法可以防止中文乱码
QString hex = ba.toHex(); // 将QByteArray转换为十六进制字符串
```
执行完上述代码后,hex字符串变量的值为"48656c6c6f20776f726c64",即字符串"Hello world"的十六进制表示。
QString转十六进制字符串
可以使用QString的toUtf8()函数将QString转换为QByteArray,然后使用QByteArray的toHex()函数将其转换为十六进制字符串。示例代码如下:
```cpp
QString str = "Hello, world!";
QByteArray byteArray = str.toUtf8();
QString hexStr = byteArray.toHex();
qDebug() << hexStr;
```
输出结果为:
```
48656c6c6f2c20776f726c6421
```
需要注意的是,toHex()函数默认使用小写字母表示十六进制,如果需要使用大写字母表示,可以在调用toHex()函数时传入QByteArray::HexUpper参数,如下所示:
```cpp
QString hexStr = byteArray.toHex(QByteArray::HexUpper);
```
阅读全文