QT 16进制 ASII 10进制 转换
//16进制字符串转字节数组
staticQByteArrayHexStrToByteArray(QStringstr)
{
QByteArraysenddata;//发送数据
inthexdata,lowhexdata;
inthexdatalen=0;
intlen=str.length();//求出发送字符传唱度
senddata.resize(len/2);//两个字符分割
charlstr,hstr;
for(inti=0;i<len;){
hstr=str[i].toLatin1();//本地字符
if(hstr==''){
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i].toLatin1();
hexdata=ConvertHexChar(hstr);//将16进制转换字符型
lowhexdata=ConvertHexChar(lstr);
if((hexdata==16)||(lowhexdata==16))
break;
else
hexdata=hexdata*16+lowhexdata;
i++;
senddata[hexdatalen]=(char)hexdata;
hexdatalen++;
}
senddata.resize(hexdatalen);
returnsenddata;
}
staticcharConvertHexChar(charch)
{
if((ch>='0')&&(ch<='9'))
returnch-0x30;
elseif((ch>='A')&&(ch<='F'))
returnch-'A'+10;
elseif((ch>='a')&&(ch<='f'))
returnch-'a'+10;
elsereturn(-1);
}
//字节数组转16进制字符串
staticQStringByteArrayToHexStr(QByteArraydata)
{
QStringtemp="";
QStringhex=data.toHex();
for(inti=0;i<hex.length();i=i+2){
temp+=hex.mid(i,2)+"";
}
returntemp.trimmed().toUpper();
}
//16进制字符串转10进制
staticintStrHexToDecimal(QStringstrHex)
{
boolok;
returnstrHex.toInt(&ok,16);
}
//10进制字符串转10进制
staticintStrDecimalToDecimal(QStringstrDecimal)
{
boolok;
returnstrDecimal.toInt(&ok,10);
}
//2进制字符串转10进制
staticintStrBinToDecimal(QStringstrBin)
{
boolok;
returnstrBin.toInt(&ok,2);
}
//16进制字符串转2进制字符串
staticQStringStrHexToStrBin(QStringstrHex)
{
uchardecimal=StrHexToDecimal(strHex);
QStringbin=QString::number(decimal,2);
ucharlen=bin.length();
if(len<8){
for(inti=0;i<8-len;i++){
bin="0"+bin;
}
}
returnbin;
}
//10进制转2进制字符串一个字节
staticQStringDecimalToStrBin1(intdecimal)
{
QStringbin=QString::number(decimal,2);
ucharlen=bin.length();
if(len<=8){
for(inti=0;i<8-len;i++){
bin="0"+bin;
}
}
returnbin;
}
//10进制转2进制字符串两个字节
staticQStringDecimalToStrBin2(intdecimal)
{
QStringbin=QString::number(decimal,2);
ucharlen=bin.length();
if(len<=16){
for(inti=0;i<16-len;i++){
bin="0"+bin;
}
}
returnbin;
}
//10进制转16进制字符串,补零.
staticQStringDecimalToStrHex(intdecimal)
{
QStringtemp=QString::number(decimal,16);
if(temp.length()==1){
temp="0"+temp;
}
returntemp;
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。