qlonglong 按照16进制存入QByteArray
时间: 2023-07-30 08:06:18 浏览: 120
可以使用QByteArray的fromHex()方法将16进制字符串转换为QByteArray。例如,将qlonglong类型的变量n按照16进制存入QByteArray中,可以使用以下代码:
```c++
qlonglong n = 0x123456789abcdef;
QByteArray byteArray = QByteArray::fromHex(QByteArray::number(n, 16));
```
这里使用QByteArray::number()将qlonglong类型的变量n转换为16进制字符串,然后再使用QByteArray::fromHex()将16进制字符串转换为QByteArray。注意,QByteArray::fromHex()只能处理偶数长度的16进制字符串,如果转换的字符串长度为奇数,则需要在字符串前面补0。
相关问题
16进制qbytearray转换中文QString
要将16进制的QByteArray转换为中文的QString,您可以使用QByteArray的toHex()函数和QString的fromLocal8Bit()函数。以下是一个示例代码:
```cpp
#include <QString>
#include <QByteArray>
// 假设您已经通过某种方式获取到了一个16进制的QByteArray对象
QByteArray hexData;
// ...
// 将16进制的QByteArray转换为中文的QString
QString chineseString = QString::fromLocal8Bit(QByteArray::fromHex(hexData));
```
在上述代码中,我们先使用QByteArray的fromHex()函数将16进制的QByteArray对象hexData转换为对应的字节流。然后,通过QString的fromLocal8Bit()函数,将字节流转换为中文的QString对象chineseString。
请注意,这里假设16进制的QByteArray对象hexData是以本地编码方式(Local 8-bit)表示的中文字符。如果使用其他编码方式,可能需要相应地调整转换函数。
16进制qbytearray转化为数组
可以使用QByteArray的fromHex()函数将16进制的QByteArray转换为字节数组,然后使用data()函数获取指向数据的指针,如下所示:
```
QByteArray hexData("48656c6c6f20576f726c64"); //16进制数据
QByteArray byteArray = QByteArray::fromHex(hexData); //将16进制数据转换为字节数组
const char* data = byteArray.data(); //获取指向数据的指针
```
这样,data指向的就是转换后的数组。注意,如果转换后的数据中有null字符,那么使用data()函数获取的指针可能不是整个数组的首地址,而是第一个null字符的地址。因此,如果你需要访问整个数组,最好使用QByteArray的constData()函数获取指针。
阅读全文
相关推荐
















