一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

1、QString转换成十六进制

复制代码
 1 void ConvertQStringToHex(const QString &str,const QByteArray& byte)
 2 {
 3     int hexData,lowhexData;
 4     int hexdataLen=0;
 5     int len = str.length();
 6     byte.resize(len/2);
 7     char lstr,hstr;
 8     for(int i=0;i<len;)
 9     {
10         hstr = str[i].toLatin1();
11         if(hstr ==' ')
12         {
13             i++;
14             continue;
15         }
16         i++;
17         if(i>=len)
18         {
19             break;
20         }
21         lstr = str[i].toLatin1();
22         hexData = ConvertCharToHex(hstr);
23         lowhexData = ConvertCharToHex(lstr);
24         if((hexData == 16)|| (lowhexData==16))
25         {
26             break;
27         }
28         else
29         {
30             hexData = hexData*16+lowhexData;
31         }
32         i++;
33         byte[hexdatalen] = (char)hexData;
34         hexdataLen++;
35     }
36     byte.resize(hexdataLen);
37 }
复制代码

2、char转十六进制

复制代码
 1 char ConvertCharToHex(char ch)
 2 {
 3     if((ch >= '0') && (ch <= '9'))
 4          return ch-0x30;
 5      else if((ch >= 'A') && (ch <= 'F'))
 6          return ch-'A'+10;
 7      else if((ch >= 'a') && (ch <= 'f'))
 8          return ch-'a'+10;
 9     else return (-1);
10 }
复制代码

3、QByteArray转QString

1 QByteArray array("Hello World");
2 QString str = array;
3 4 str.prepend(array);

4、将16进制QString转换成QByteArray

复制代码
 1 QByteArray HexStringToByteArray(QString HexString)
 2 {
 3     bool ok;
 4     QByteArray ret;
 5     HexString = HexString.trimmed();
 6     HexString = HexString.simplified();
 7     QStringList sl = HexString.split(" ");
 8 
 9     foreach (QString s, sl) {
10         if(!s.isEmpty())
11         {
12             char c = s.toInt(&ok,16)&0xFF;
13             if(ok)
14             {
15                 ret.append(c);
16             }
17             else
18             { }
19         }
20     }
21     return ret;
22 }
复制代码

5、QByteArray转16进制QString

复制代码
 1 QString MainWindow::ByteArrayToHexString(QByteArray data)
 2 {
 3     QString ret(data.toHex().toUpper());
 4     int len = ret.length()/2;
 5     qDebug()<<len;
 6     for(int i=1;i<len;i++)
 7     {
 8         ret.insert(2*i+i-1," ");
 9     }
10 
11     return ret;
12 }
复制代码

 

posted on   一杯清酒邀明月  阅读(1082)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示