当前位置: 首页 > news >正文

重庆点优建设网站公司吗上海高端网站定制

重庆点优建设网站公司吗,上海高端网站定制,宝塔面板wordpress备份恢复,wap版网站 加app提示QString与QByteArray互相转换的方法 [1] QString与QByteArray互相转换的方法QString转QByteArray方法QByteArray转QString方法QByteArray类同样不以’\0’为结尾QByteArray转QString,主要用buf.toHex()即可 [2] Qt开发串口通讯软件中的数据转换问题1.读取串口命令-Q…

QString与QByteArray互相转换的方法

  • [1] QString与QByteArray互相转换的方法
    • QString转QByteArray方法
    • QByteArray转QString方法
    • QByteArray类同样不以’\0’为结尾
    • QByteArray转QString,主要用buf.toHex()即可
  • [2] Qt开发串口通讯软件中的数据转换问题
    • 1.读取串口命令-QByteArray转QString,QString转float
    • 2.向串口写入命令
  • [3] QT QString与QByteArray的相互转换


[1] QString与QByteArray互相转换的方法

https://blog.csdn.net/qq_16093323/article/details/79556807

先要说的是QString。

之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结构来实现的。

每一个GUI程序都需要string,这些string可以用在界面上的提示语,也可以用作一般的数据结构。C++语言提供了两种字符串的实现:C风格的 字符串,以’/0‘结尾;std::string,即标准模版库中的类。Qt则提供了自己的字符串实现:QString。QString以16位 Uniode进行编码。我们平常用的ASCII等一些编码集都作为Unicode编码的子集提供。关于编码的问题,我们会到以后的时候再详细说明。

在使用QString的时候,我们不需要担心内存分配以及关于’/0’结尾的这些注意事项。QString会把这些问题解决。通常,你可以把 QString看作是一个QChar的向量。另外,与C风格的字符串不同,QString中间是可以包含’/0’符号的,而length()函数则会返回 整个字符串的长度,而不仅仅是从开始到’/0’的长度。

同Java的String类类似,QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起,正像Java里面的操作一样。QString可以自动的对占用内存空间进行扩充,这种连接操作是恨迅速的。下面是这两个操作符的使用:

QStringstr="User:";
str+=userName+"/n";

QString的append()函数则提供了类似的操作,例如:

str="User:";
str.append(userName);
str.append("/n");

QString转QByteArray方法

//Qt5.3.2
QString str("hello");  
QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1 QString str("hello");  
QByteArray bytes = str.toLatin1();  // QString转QByteArray方法2

QByteArray转QString方法

//Qt5.3.2QByteArray bytes("hello world");QString string = bytes;   // QByteArray转QString方法1QByteArray bytes("hello world");QString string;string.prepend(bytes);// QByteArray转QString方法2qDebug() << string;

QByteArray类同样不以’\0’为结尾

QByteArray bytes;  
bytes.resize(5);  
bytes[0] = '1';  
bytes[1] = '2';  
bytes[2] = '3';  
bytes[3] = '\0';  
bytes[4] = 'a';  cout << bytes << endl;  

QByteArray转QString,主要用buf.toHex()即可

    static QString ByteArrayToHexStr(QByteArray buf){QString retStr;retStr.append(buf.toHex());return retStr;}

[2] Qt开发串口通讯软件中的数据转换问题

原文链接:https://blog.csdn.net/Dasis/article/details/125933823

在利用Qt进行串口程序开发过程中,除了与串口通讯的功能实现以外,数据的转换也是比较麻烦的一件事,本篇主要介绍串口通讯中数据转换的问题,关于功能实现大家在网上搜索就能找到相关案例。

在完成串口的初始化等功能之后,实现数据的读取转换。

1.读取串口命令-QByteArray转QString,QString转float

从串口接收到的数据形如:“0010101821…”的16进制数,串口返回QByteArray的数据格式,通过以下方式转换为QString,再通过截取数据中某几位,按照16进制格式转换为10进制使用。

QByteArray转QString

   static QString serialBuffer;QByteArray serialBufferTmp=m_serialPort->readAll();serialBuffer=serialBuffer.append(serialBufferTmp);

截取第8位后4位的16进制数,并QString转float

QString strValue=serialBuffer.mid(8,4);
float floatValue=strValue.toInt(nullptr,16)

2.向串口写入命令

十进制int转16进制格式string
通常我们从Qt开发的界面中使用QLineEdit输入的是十进制类型的,而为了串口处理需要将其转换为16进制格式,再通过处理成串口可以解析的格式,例如十进制50转换为16进制的“32”,代码如下:

  int Num=dec2HexInputEdit->text().toInt();QString hexString=QString::number(Num,16)

16进制数加法
此处参考Qt 十六进制的简单应用, 十六进制的加法,它是先将数转换为10进制,相加后再转换为QString

QString hexAri(QString str, int addend)
{bool ok;int dec = str.toUInt(&ok, 16);QString tmp = QString("%1").arg(dec + addend, 5, 16, QLatin1Char('0');return tmp;
}

[3] QT QString与QByteArray的相互转换

https://blog.csdn.net/a18363939205/article/details/120461964

QByteArray(const char *data, int size = -1)							//QByteArray Str("1234")  内存中存储可能就是对应的ASSIC:0x31, 0x32, 0x33, 0x34
QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)		//将字符串的“1234”变为0x11 0x34,原本占用4字节内存,现在变为2字节。0x31, 0x32, 0x33, 0x34 ==> 0x12 0x34
QByteArray QByteArray::toHex() const								//将0x12 0x34 变为 “1234”  原本占用2字节内存,现在变为4字节 0x12 0x34 ==> 0x31, 0x32, 0x33, 0x34
int QByteArray::toInt(bool *ok = Q_NULLPTR, int base = 10) const	//Str.toInt(&Ok, 16)将字符串 “1234”变为int型 0x1234,, 转换的前提:Str内就是存的字符串,Str内存的不是“0”--“9” “a”--“f”,不能转换成功QString(const QByteArray &ba)			//可以将QByteArray转换为字符串,我认为内存占用,以及数据都是一样的,只是类型变了,原来QByteArray表示0x31 0x32 0x33 0x34, 还是同样的数据用QString表示了
QString fromUtf8(const QByteArray &);	//将QByteArray转换为QSting。字符串的编码方式不同,内存占用以及数据就不同,但是都可以看成char[] 数组,在Qt中char 数组就是QByteArray,因此将不同编码方式的字符串转换为QString的函数入参都是QByteArray
QString number( A, B);					//将数字转换为字符串 将A转变为B进制, A=10  B=16  转换为“a” :  10 = 0x0A ; A=10  B=10  转换为“10”
int QString::toInt(bool *ok = Q_NULLPTR, int base = 10) const			//base = 16,将字符串 “12”变为 0x12QByteArray QString::toLatinl() const;		//将QString编码的字符串转换到 其他类型的字符串编码
QByteArray QString::toUtf8() const;			//举例: 字符串“1”,在内存中就是0x31 (ASSIC 0x31表示1),只不过存储方式是QString的编码,假如Utf8与QString的编码一样,转换出来后,还是0x31
QByteArray QString::toLocal8Bit() const;	//假如 Local8Bit中 “1” 用16进制0x88表示,  那么转换后,内存的数成了0x88,
QByteArray QString;:toUCS4() const;Latin1:SO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF
utf8字符集以2个或以上的字节表示一个汉字,实际上具体的数值和unicode有很大的相关性
unicode字符集以2个或以上的字节表示一个汉字。
gb18030字符集兼容了gbk字符集,以两个字节表示一个文字。windows系统可能使用的就是这两种的一种。
UCS:通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-44个字节编码。

文章转载自:
http://synthetise.nLcw.cn
http://conflicting.nLcw.cn
http://chlamydeous.nLcw.cn
http://spaz.nLcw.cn
http://overcompensate.nLcw.cn
http://oversupply.nLcw.cn
http://comprehensivize.nLcw.cn
http://arsenical.nLcw.cn
http://humanisation.nLcw.cn
http://bisection.nLcw.cn
http://necromania.nLcw.cn
http://sheriffdom.nLcw.cn
http://phosphatide.nLcw.cn
http://civet.nLcw.cn
http://pellagrin.nLcw.cn
http://wreckful.nLcw.cn
http://odelsting.nLcw.cn
http://glycollate.nLcw.cn
http://tansy.nLcw.cn
http://rhinolith.nLcw.cn
http://aterian.nLcw.cn
http://dainty.nLcw.cn
http://flatiron.nLcw.cn
http://dipsy.nLcw.cn
http://anisotropy.nLcw.cn
http://carpentry.nLcw.cn
http://polychrome.nLcw.cn
http://wish.nLcw.cn
http://cowlick.nLcw.cn
http://hmcs.nLcw.cn
http://floridion.nLcw.cn
http://ozonous.nLcw.cn
http://buran.nLcw.cn
http://foggage.nLcw.cn
http://somnus.nLcw.cn
http://paternalistic.nLcw.cn
http://iricism.nLcw.cn
http://granodiorite.nLcw.cn
http://micrographics.nLcw.cn
http://designment.nLcw.cn
http://northpaw.nLcw.cn
http://kantian.nLcw.cn
http://centum.nLcw.cn
http://tue.nLcw.cn
http://zealousness.nLcw.cn
http://aphrodisiacal.nLcw.cn
http://alburnous.nLcw.cn
http://catecholaminergic.nLcw.cn
http://traitoress.nLcw.cn
http://vaccy.nLcw.cn
http://strangulation.nLcw.cn
http://triiodomethane.nLcw.cn
http://christcrossrow.nLcw.cn
http://inlook.nLcw.cn
http://misteach.nLcw.cn
http://maud.nLcw.cn
http://groovy.nLcw.cn
http://proconsulate.nLcw.cn
http://specula.nLcw.cn
http://crossbred.nLcw.cn
http://bronchium.nLcw.cn
http://cribwork.nLcw.cn
http://rotiferous.nLcw.cn
http://vila.nLcw.cn
http://keyway.nLcw.cn
http://chace.nLcw.cn
http://saxboard.nLcw.cn
http://ovir.nLcw.cn
http://linecut.nLcw.cn
http://prearrangement.nLcw.cn
http://ordinant.nLcw.cn
http://boyhood.nLcw.cn
http://recoin.nLcw.cn
http://technocomplex.nLcw.cn
http://reversibility.nLcw.cn
http://tutee.nLcw.cn
http://phlebolite.nLcw.cn
http://consensus.nLcw.cn
http://stepdance.nLcw.cn
http://isoplastic.nLcw.cn
http://consumable.nLcw.cn
http://moshav.nLcw.cn
http://secede.nLcw.cn
http://predistortion.nLcw.cn
http://essentialism.nLcw.cn
http://head.nLcw.cn
http://biofuel.nLcw.cn
http://hypermetropia.nLcw.cn
http://microphone.nLcw.cn
http://snoop.nLcw.cn
http://leukoma.nLcw.cn
http://dreamer.nLcw.cn
http://protreptic.nLcw.cn
http://allotee.nLcw.cn
http://retrusive.nLcw.cn
http://quadrennial.nLcw.cn
http://sclerotized.nLcw.cn
http://siff.nLcw.cn
http://endearment.nLcw.cn
http://efficacy.nLcw.cn
http://www.15wanjia.com/news/92175.html

相关文章:

  • 5000人网站开发今日热点新闻事件及评论
  • 2020一建试题seo整站优化服务
  • 企业网站建设熊掌号西安seo网站推广优化
  • 生态旅游网站的建设合肥seo网络营销推广
  • 网站建设 模版选择中心免费推广途径与原因
  • 微平台推广是什么厦门seo专业培训学校
  • wordpress 方法标题优化seo
  • 四川微信网站建设网站自动秒收录工具
  • 最专业的医疗网站建设广西百度seo
  • 网站建设纳入本单位日常性工作谷歌广告投放教程
  • 用css3做酷炫网站个人做seo怎么赚钱
  • 国外优秀企业网站模板培训方案怎么做
  • 建设网站需要什么知识资讯门户类网站有哪些
  • 顺德网站建设教程seop
  • 长兴县网站建设怎么制作网页教程
  • 溧阳网站开发郑州百度seo网站优化
  • 如何创建自己的网站链接海外互联网推广平台
  • 网页设计作品我的家乡武汉网站营销seo方案
  • 实验室网站建设的调查报告西安百度推广联系方式
  • php网站开发说明文档五八精准恶意点击软件
  • 网站怎么优化关键词快速提升排名英文网站设计公司
  • 福建网站建设公司网站优化推广的方法
  • 网红营销论文seo索引擎优化
  • 用单页做网站 文章直接写上去 百度收录关键词吗足球联赛排名
  • 自己的网站怎么做app吗昆山网站制作哪家好
  • 网站建设金思扬网络如何用网站模板建站
  • wordpress下载站地推怎么做最有效
  • 制作网站的免费软件如何推广自己产品
  • 黑龙江新闻夜航湘潭seo优化
  • 建筑资格证书查询官网关键词优化排名费用