qt中二进制字符串转化为二进制数组
时间: 2023-05-13 22:07:38 浏览: 432
可以使用 QByteArray 类的 fromHex() 方法将二进制字符串转化为二进制数组。示例代码如下:
QString binaryString = "10101010";
QByteArray binaryArray = QByteArray::fromHex(binaryString.toLatin1());
注意,这里的二进制字符串是每个字符都是 '0' 或 '1' 的字符串,而不是十六进制字符串。如果需要将十六进制字符串转化为二进制数组,可以使用 QByteArray 类的 fromHex() 方法。
相关问题
qt中16进制字符串转化为二进制数组
可以使用 QByteArray 类的 fromHex() 函数将 16 进制字符串转化为二进制数组,示例代码如下:
QString hexString = "FF00AA";
QByteArray byteArray = QByteArray::fromHex(hexString.toLatin1());
qDebug() << byteArray.toHex(); // 输出 "ff00aa"
注意,toLatin1() 函数将 QString 转化为 Latin-1 编码的 QByteArray,这是 fromHex() 函数的参数类型要求。
QT中十六进制字符串转化为二进制字符串
可以使用QString的toByteArray()函数将十六进制字符串转化为二进制数据,再使用QByteArray的toHex()函数将二进制数据转化为十六进制字符串。
示例代码:
```cpp
QString hexStr = "FF00AA";
QByteArray hexData = QByteArray::fromHex(hexStr.toUtf8());
QString binaryStr;
for(int i = 0; i < hexData.size(); i++) {
binaryStr += QString("%1").arg(hexData.at(i), 8, 2, QChar('0'));
}
```
解释:
1. 定义十六进制字符串`hexStr`为"FF00AA"。
2. 将十六进制字符串转化为二进制数据,存储在`hexData`中。
3. 定义空的二进制字符串`binaryStr`。
4. 循环遍历`hexData`中的每个字节,将其转化为8位二进制字符串并拼接到`binaryStr`中。
5. 最终的二进制字符串为"111111110000000010101010"。
阅读全文