qt数据处理

1.十六进制字符串转数组

方式一:慢

方法: 
   QByteArray dataTemp="5aa51000150608112430ff15070912253153544f50";
    QByteArray sd;bool ok;
    for(int i=0;i<21;i++)sd[i]=dataTemp.mid(i*2,2).toInt(&ok,16);
结果:
   sd[0]=0x5a;
   ....
   sd[20]=0x50;

方式二:快

    QByteArray Dataall="5aa51000150608112430ff15070912253153544f50";
    QByteArray aaa;
    aaa=QByteArray::fromHex(Dataall);//将一个个字符转成两个字符为一个数的16进制表示
    aaa[0]=0x5a;
    ...
    aaa[20]=0x50;

2.数组转十六进制字符串

QByteArray类型转换

QByteArray sd;
sd[0]=0xaa;
sd[1]=0x0b;
sd.toHex();//aa0b

char、int类型强制转换保留指定长度十六进制字符串

QString().sprintf("%02X",send[a]).right(2)//其中2可变为需求长度数值

3.数组转十进制字符串(保留固定长度)

//sd[0~5]=150608112430
startDataeTim.append(QString("%1").arg(sd[i],2,10,QChar('0')));//2是保留2位长度,10是10进制
//210608173648

4.测试二维QVector

//测试二维QVector
//    QVector< QVector< QString > > mmmax;
//    QVector< QVector< QString > > mmmin;
//    QStringList aaa;
//    aaa<<"111"<<"222"<<"333";
//    QStringList bbb;
//    bbb<<"-111"<<"-222"<<"-333";
//    QStringList ccc;
//    ccc<<"444"<<"555"<<"666";
//    QStringList ddd;
//    ddd<<"-444"<<"-555"<<"-666";

    //mmmax.resize(2);
    //mmmin.resize(2);
//    for(int i=0;i<aaa.size();i++)
//        mmmax[0].append(aaa.at(i));
//    for(int i=0;i<bbb.size();i++)
//        mmmin[0].append(bbb.at(i));
//    for(int i=0;i<ccc.size();i++)
//        mmmax[1].append(ccc.at(i));
//    for(int i=0;i<ddd.size();i++)
//        mmmin[1].append(ddd.at(i));

//    qDebug()<<mmmax.size();
//    qDebug()<<mmmax.at(0).size();
//    qDebug()<<mmmax;
//    qDebug()<<mmmin;

Guess you like

Origin blog.csdn.net/qq_37603131/article/details/118367697