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;