艺术网站建设公司,深圳网站开发外包,河南无限动力做网站怎么样,建筑模型网站有哪些场景描述
有一组十六进制数使用QByteArray进行存储#xff1b;需要将其插入QJsonObject#xff0c;然后通过网络发送出去#xff1b;接收到后#xff0c;再转换回QByteArray#xff1b; 操作代码
1. QByteArray转换QString插入QJsonObject
QString str ;
…场景描述
有一组十六进制数使用QByteArray进行存储需要将其插入QJsonObject然后通过网络发送出去接收到后再转换回QByteArray 操作代码
1. QByteArray转换QString插入QJsonObject
QString str ;
QJsonObject jsonObj;
QByteArray byteArray;byteArray.resize(2);
byteArray[0] 0x3c;
byteArray[1] 0xb8;/* QByteArray 转 QString */
str.append(byteArray.toHex());/* 插入到QJsonObject */
jsonObj.insert(obj, str);/* 网络传输... */
2.QString解析转换QByteArray
// 接收到字符串后...
/* QString 转 QByteArray */
QByteArray ba GetHexValue(str);
QString十六进制数据转换QByteArray 参考链接
QByteArray Main::GetHexValue(QString str)
{QByteArray senddata;int hexdata,lowhexdata;int hexdatalen 0;int len str.length();senddata.resize(len/2);char lstr,hstr;for(int i0; ilen; ){hstrstr[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;elsehexdata hexdata*16lowhexdata;i;senddata[hexdatalen] (char)hexdata;hexdatalen;}senddata.resize(hexdatalen);return senddata;
}char Main::ConvertHexChar(char ch)
{if((ch 0) (ch 9)) //限定字符0-9return ch-0x30;else if((ch A) (ch F)) //限定字符A-Freturn ch-A10;else if((ch a) (ch f)) //限定字符a-freturn ch-a10;else return (-1);
}结束。