关于QT内部16进制、十进制、QByteArray,QString

本文介绍了在QT中进行16进制、十进制和QByteArray之间的数据转换方法。重点讨论了QByteArray如何转化为十六进制的QString以及进一步转换为int类型。强调了在使用data.toInt()时需要注意的事项,并提供了字符串到QByteArray的转换示例。此外,还涉及了十进制数据转换为16进制字符串的实践应用。QT开发者应明确数据的进制和类型,正确使用函数参数。
摘要由CSDN通过智能技术生成

QT里面的数据转化成十六进制比较麻烦,其他的int或者byte等型都有专门的函数,而十六进制没有特定的函数去转化,这我在具体的项目中已经解决(参考网上大神)->小项目程序

QT里面虽然有什么QString str; str.toInt();等函数,但是用不好的话,会出很大的问题。

QByteArray:这个东西可以存放很多数据,16进制的数据、字符串类的数据等。

下面这个data接受的是16进制数据,现在想显示出来就得转化成QString,然后再转化成int类型用于计算

1 QByteArray data=tcpSocket->readAll(); //接受16进制

1 QString p = data.toHex(); 2 ui->clearLineEdit->setText(p); //转化成Qstring

data.toInt(0,16) //转化成int

注意:data.toInt(),直接使用不行!

接下来是接受字符串的转化,

1 QByteArray data=tcpSocket->readAll(); //接受的是字符串

QString p = QString(data); //直接转化就行了

最后是十进制转化成十六进制的问题(主要用在串口和TCP上面),下面程序有几种表述:

1.char p[3]={0x11,0xab,0x0b}; 把里面的数据转化成0x11ab0b发送!

2.int p[3] = {170,170,170}; 把里面数据转化成0xaaaaaa发送!

实现的功能都是一样的,第二种简单一点,下面以第二种为例,第一种类似࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值