long 转 QByteArray
时间: 2023-08-02 17:17:31 浏览: 198
可以使用QByteArray的fromRawData函数将long类型数据转换为QByteArray类型,示例代码如下:
```cpp
long num = 123456789;
QByteArray bytes = QByteArray::fromRawData(reinterpret_cast<const char*>(&num), sizeof(num));
```
这里使用了reinterpret_cast将long类型数据的地址转换为const char*类型,然后将其转换为QByteArray类型。需要注意的是,这里使用了fromRawData函数,它不会在内部复制数据,而是直接使用给定的数据指针和长度创建QByteArray对象。因此,在使用QByteArray对象之前,需要确保原始数据的生命周期足够长。
相关问题
Qt long转为qbytearray
可以使用QByteArray的setNum()函数将long类型数据转换为字符串,再使用QByteArray的fromHex()或fromBase64()函数将字符串转换为QByteArray,示例代码如下:
```cpp
long num = 123456;
QString str = QString::number(num);
QByteArray ba = QByteArray::fromHex(str.toUtf8());
```
这里将long类型数据123456转换为字符串"1e240",再将字符串转换为QByteArray。需要注意的是,将long类型数据转换为字符串时,可以使用QString的number()函数或者QByteArray的setNum()函数,两者的用法类似,具体可以根据实际情况选择。另外,如果字符串是通过QByteArray的toHex()或toBase64()函数得到的,可以使用QByteArray的fromHex()或fromBase64()函数将其转换为QByteArray。
如果要将QByteArray转换为long类型数据,可以使用QByteArray的toLong()函数,示例代码如下:
```cpp
QByteArray ba = QByteArray::fromHex("1e240");
long num = ba.toLong(nullptr, 16);
```
这里将字符串"1e240"转换为long类型数据123456。toLong()函数的第一个参数为bool类型,表示是否成功转换,可以传递一个指针来获取结果;第二个参数为int类型,表示进制,默认为10进制,这里需要指定为16进制。
qt QByteArray转long long int
根据提供的引用内容,可以使用QByteArray的toLongLong()函数将Qt QByteArray转换为long long int类型。以下是一个示例代码:
```cpp
QByteArray byteArray = "12345";
long long int value = byteArray.toLongLong();
```
在上面的示例中,我们将QByteArray对象byteArray转换为long long int类型的value变量。通过调用toLongLong()函数,我们可以将字节转换为长整型。
阅读全文