QT 十六进制字符串转化为十六进制编码.docx
QT 十六进制字符串转化为十六进制编码/* Function: hexStringtoByteArray Description: 十六进制字串转化为十六进制编码 Calls: formatString Called By: Input: hex->待转化的十六进制字串 Output: NULL Return: QByteArray Others: NULL */ QByteArray Omron:hexStringtoByteArray(QString hex) QByteArray ret; hex=hex.trimmed; formatString(hex,2,' '); QStringListsl=hex.split(" "); foreach(QStrings,sl) if(!s.isEmpty) ret.append(char)s.toInt(0,16)&0xFF); return ret; /* Function: formatString Description: 将十六进制字串每字节中间加空格分隔 Calls: Called By:hexStringtoByteArray Input: org->待处理的字串 n->间隔数默认为2 ch->分隔标志,在此取空格 Output: NULL Return: void Others: NULL */ void Omron:formatString(QString&org, int n=2, constQChar&ch=QChar(' ') int size= org.size; int space= qRound(size*1.0/n+0.5)-1; if(space<=0) return; for(int i=0,pos=n;i<space;+i,pos+=(n+1) org.insert(pos,ch);