16进制QString字符串转二进制
时间: 2023-10-28 13:36:23 浏览: 153
QString str = "ABCD1234";
QByteArray ba = QByteArray::fromHex(str.toUtf8());
QString binaryStr;
for(int i=0; i<ba.length(); i++)
{
binaryStr += QString::number(ba[i], 2).rightJustified(8, '0');
}
qDebug() << binaryStr;
相关问题
16进制QString字符串 转成 int型变量
在C++中,你可以使用QByteArray和qFromHex函数将16进制的QString转换为int型变量。首先,你需要确保QString包含的是有效的16进制数,然后按照以下步骤操作:
```cpp
QString hexString = "你的16进制字符串";
// 将QString转换为QByteArray
QByteArray hexBytes = QByteArray::fromHex(hexString.toLocal8Bit());
// 确保字符串是偶数长度,因为每两个字符代表一个16位二进制数
if (hexBytes.size() % 2 == 1) {
hexBytes.prepend(QByteArray(1, '0')); // 如果不是,前面补零
}
// 使用quint64从QByteArray获取64位整数,然后转为int
quint64 numAsQuint64 = qFromLittleEndian(quint64(hexBytes));
int numAsInt = qint32(numAsQuint64);
// 如果需要负数范围,可以使用 quint32 或 qint32 类型,而不是直接强制转换
```
QT中16进制qstring类型转化为二进制qstring类型
在Qt中,如果你想将16进制的QString转换为二进制的QString,可以先将其解析成QByteArray(二进制数据数组),然后再将其转换回QString。以下是一个简单的步骤:
1. 首先,你可以使用QString::toLocal8Bit()函数将16进制字符串转换为本地编码的字节序列,因为QString默认存储的是Unicode字符。
```cpp
QString hexString = "your_hex_string";
QByteArray hexBytes = QByteArray::fromHex(hexString.toStdString());
```
这里`toStdString()`用于从QString转为std::string,以便进行十六进制转换,然后用QByteArray::fromHex创建一个二进制数组。
2. 接着,将QByteArray转换为二进制QString,使用QByteArray::toBase64()或直接用二进制格式的QString构造函数。
```cpp
QByteArray binaryBytes = QByteArray::fromHex(hexString.toStdString());
QString binaryString = QString(binaryBytes);
// 或者使用 base64 编码
QString binaryStringBase64 = binaryBytes.toBase64();
```
阅读全文
相关推荐













