其他分享
首页 > 其他分享> > QByteArray

QByteArray

作者:互联网

一、用途

QByteArray用来存储原始char类型数据。Qt中QString等类型数据内部都是通过QChar存储,所以通过.data()返回的数据都是QChar。

注意:把char类型数据存入QByteArray类型数据时,char数据需要以'\0'结尾。

二、常用功能

2.1char类型QByteArray类型数据交互

2.1.1char数据写入QByteArray


  1 QByteArray tmp;
  2 QString myStr("abc");
  3 
  4 tmp.append(myStr);  //tmp存储“abc”
  5 
  6 ///////////////////////////
  7 char cdata[] = { 1,2,3,4,5 };
  8 QByteArray myTmp;
  9 //cSize是5
 10 int cSize = sizeof(cdata);
 11 //cSize是1
 12 //cSize = sizeof(*cdata);
 13 myTmp.reserve(sizeof(*cdata)+1);
 14 myTmp.append(cdata,sizeof(cdata)+1);


QByteArray存入数据支持的数据类型:

  1 QByteArray & append(const QByteArray &ba)
  2 QByteArray & append(int count, char ch)
  3 QByteArray & append(const char *str)
  4 QByteArray & append(const char *str, int len)
  5 QByteArray & append(char ch)
  6 QByteArray & append(const QString &str)
  7 


2.1.2QByteArray数据中读取char数据


  1 ///////////////////////////
  2 char cdata[] = { 1,2,3,4,5 };
  3 QByteArray myTmp;
  4 //cSize是5
  5 int cSize = sizeof(cdata);
  6 //cSize是1
  7 //cSize = sizeof(*cdata);
  8 myTmp.reserve(sizeof(*cdata)+1);
  9 myTmp.append(cdata,sizeof(cdata)+1);
 10 
 11 char cArra[6];
 12 memcpy(cArra,myTmp.data(),myTmp.size());



2.2从16进制字符读入(2个16进制字符表示1个ASCII码)


  1 
  2 QByteArray macAddress = QByteArray::fromHex("123456abcdef");
  3 
  4 //macSize大小是6,会把两个16进制字符组合成一个ASCII码
  5 int macSize = macAddress.size();
  6 macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
  7 macAddress.toHex(0);   // returns "123456abcdef"


2.2内部数据转16进制字符

功能:会把QByteArray存储的原始数据每个字节转成2个16进制字符,不足2个字符会自动补0。

可以设置每个字符之间的连接符(两个16进制字符)

  1 QByteArray macAddress = QByteArray::fromHex("123456abcdef");
  2 
  3 //macSize大小是6,会把两个16进制字符组合成一个ASCII码
  4 int macSize = macAddress.size();
  5 //用冒号链接
  6 QByteArray mac = macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
  7 //用-字符链接
  8 mac = macAddress.toHex(':'); // returns "12-34-56-ab-cd-ef"
  9 mac = macAddress.toHex(0);   // returns "123456abcdef"


2.3内部数据转其他进制数字





三、相关参考

标签:myTmp,macAddress,QByteArray,char,cdata,append
来源: https://www.cnblogs.com/mehome/p/15972128.html