main.cpp 主函数
#include "StringToHex.h"
QString str = "ABBCCDD120190E";
QByteArray temp;
StringToHex(str, temp);
qDebug()<<temp.toHex();
qDebug()<<temp;
StringToHex.h头文件
void StringToHex(QString str, QByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen = 0;
int len = str.length();
senddata.resize(len/2);
char lstr,hstr;
for(int i=0; i<len; )
{
//char lstr,
hstr=str[i].toLatin1();//获取一个字节
if(hstr == ' ')//如果第一个是空的,就直接放弃了,结束本次循环跳入下次循环
{
i++;
continue;
}
i++;
if(i >= len)
break;
lstr = str[i].toLatin1();//低以为,先装高,后装低
hexdata = ConvertHexChar(hstr);
lowhexdata = ConvertHexChar(lstr);
if((hexdata == 16) || (lowhexdata == 16))
break;
else
hexdata = hexdata*16+lowhexdata;
i++;
senddata[hexdatalen] = (char)hexdata;
hexdatalen++;
}
senddata.resize(hexdatalen);//senddata为我所要
}