一、十六进制转换为int型的数
函数表示为:过程是将字节数进行转换,最后转换为int类型的数
int Mainwindow::ConvertHexInt(char ch){
if ((ch >= '0') && (ch <= '9')){
return ch - '0';
}else if ((ch >= 'A') && (ch <= 'F'))
{
return ch - 'A' + 10;
}else if ((ch >= 'a') && (ch <= 'f')){
return ch - 'a' + 10;
}else{
return (-1);
}
}
二、十六进制的数转换为字节数
QByteArray Widget::HexStringToByteArray(QString HexString)//通过函数HexStringToByteArray将字符数组
{ //来进行转化,转化后发送的是16进制的数据。
bool ok;
QByteArray ret;
HexString = HexString.trimmed();
HexString = HexString.simplified();
QStringList sl = HexString.split(" ");
foreach (QString s, sl) {
if (!s.isEmpty())
{
char c = s.toInt(&ok,16)&0xFF;
if(ok){
ret.append(c);
}
else
{
// qDebug()<<"非法的16进制字符:"<<s;
//QMessageBox::warning(0,tr("错误:"),QString("非法的16进制字符: \"%1\"").arg(s));
}
}
}
//qDebug()<<ret;
return ret;
}