1.QString存储十六进制内容
我要发送的十六进制内容是 01 05 04 01 00
将其储存在QString字符串中
1 QString str; 2 str = "0105040100";
2.核心语句
将两位的字符串转换为16进制的Int型数字,然后通过强制类型转换成char类型的字符。
(具体作用方式我还没去看,但是有用)
(char)str.mid(i, 2).toInt(&ok, 16)
3.编写函数进行转换
创建一个返回类型为QByteArray的函数 Hexstring2QByteArray
通过每两位两位的方式将所有内容转为char再用QByteArray进行尾部添加
1 QByteArray Hexstring2QByteArray(QString str) 2 { 3 QByteArray Hexstr; 4 bool ok; 5 for (int i = 0; i < str.size(); i += 2) 6 { 7 Hexstr.append((char)str.mid(i, 2).toInt(&ok, 16)); 8 } 9 return Hexstr; 10 }
这个函数能够将16进制内容的QString字符串转为QByteArray数组进行发送
结果如图所示,这是串口工具接收到的我的程序发回的16进制QByteArray
标签:QByteArray,进制,16,char,QString,str From: https://www.cnblogs.com/ybqjymy/p/18066881