环境说明
Qt版本:5.12 Mingw32
操作系统:win10
实现的功能
QString与16进制QString互转
QString转16进制QString
最基础的用法。最简单的技巧就是先转一下QByteArray格式。其中原本的字符串为str。
QByteArray array = str.toUtf8();
QString string1=array.toHex();
转换的效果
可以明显的看出虽然已经实现将QString转换成了16进制的样式,但一个个的都连在一起,不方便查看,所以还需要进一步处理。
这里参考一般串口通信的软件,在每一个字符串中间添加一个空格
QByteArray array = str.toUtf8();
QString string1=array.toHex();
QString string2;
for(int i=0;i<string1.size();i++)
{
for(int j=0;j<2;j++)
{
if(i<string1.size())
string2.append(string1.at(i+j));
}
if(i++<string1.size()-2)
string2.append(" ");
}
转换效果
可以明显的看出,转换的效果相当的好。
16进制QString转QString
这是在之前处理的基础上做的,就是把转换后的字符串转换为原来的样式。
QStringList string3=string2.split(" ");
QString string4;
for(int i=0;i<string3.size();i++)
{
char value=string3.at(i).toInt(NULL,16);
string4.append(value);
}
效果展示
这里说明以下,这里原本是做UDP通信的测试,传递的数据原本就是采集卡上传的16进制数据,所以显示出来的就是乱码。