qt字符串转2进制
时间: 2023-08-13 16:18:24 浏览: 122
你可以使用QString类的toUtf8()函数将字符串转换为UTF-8编码的字节数组,然后再通过位运算将其转换为二进制字符串。以下是一个示例代码:
```cpp
QString str = "Hello World!";
QByteArray utf8Data = str.toUtf8();
QString binaryStr;
for (int i = 0; i < utf8Data.size(); ++i) {
char c = utf8Data.at(i);
for (int j = 7; j >= 0; --j) {
binaryStr += ((c >> j) & 1) ? '1' : '0';
}
}
qDebug() << binaryStr;
```
该代码将字符串"Hello World!"转换为二进制字符串"01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 00100001"并输出到控制台。
相关问题
qt 字符串转16进制数据
在Qt中,您可以使用QByteArray类提供的`QByteArray::fromHex()`函数将十六进制字符串转换为字节数组。以下是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString hexString = "48656C6C6F20576F726C64"; // 十六进制字符串
QByteArray byteArray = QByteArray::fromHex(hexString.toUtf8());
qDebug() << "Converted byte array: " << byteArray.toHex();
return a.exec();
}
```
在上面的示例中,我们使用`QByteArray::fromHex()`函数将十六进制字符串"48656C6C6F20576F726C64"转换为字节数组。我们首先将QString类型的十六进制字符串转换为UTF-8编码的QByteArray,然后使用`fromHex()`函数进行转换。转换后的字节数组可以使用`toHex()`函数以十六进制字符串的形式输出。
请注意,`fromHex()`函数假定输入的十六进制字符串是有效的,并且长度应为偶数。如果输入的字符串包含非十六进制字符或长度不是偶数,转换可能会失败。因此,在使用转换后的字节数组之前,建议进行错误检查。
qt 字符串转十六进制
可以使用以下方法将 QString 转换为十六进制字符串:
```cpp
QString str = "Hello, world!";
QByteArray byteArray = str.toUtf8();
QString hexStr = byteArray.toHex();
```
这里首先将 QString 转换为 QByteArray,然后再将 QByteArray 转换为十六进制字符串。如果需要将 QByteArray 转换为 QString,可以使用以下方法:
```cpp
QByteArray byteArray = QByteArray::fromHex("48656c6c6f2c20776f726c6421");
QString str = QString::fromUtf8(byteArray);
```
这里首先将十六进制字符串转换为 QByteArray,然后再将 QByteArray 转换为 QString。