为了账号安全,请及时绑定邮箱和手机立即绑定

如何把qt串口接收到的十六进制转为十进制 ?

如何把qt串口接收到的十六进制转为十进制 ?

拉丁的传说 2019-04-11 10:07:54
如何把qt串口接收到的十六进制转为十进制 
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

你说的十六进制是 类似“CA”之类的 文本 吧,
在Qt的帮助文档中注意看这个函数:
int QString::toInt ( bool * ok = 0, int base = 10 ) const
注意其中的 ‘base’

QString str = "FF";
bool ok;
int hex = str.toInt(&ok, 16); // hex == 255, ok == true

查看完整回答
反对 回复 2019-04-15
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

类似“02e3a2f5d6”的字符串,可以用字符拆分的方式进行分解,可以分解到QByteArray对象中
给你一个拆分类似 "12 35 AB 25 CD"字符串的函数,自己再稍加改动就可以用了

QByteArray HEXStringToArr(QString hexstr)
{
QByteArray qrst;
hexstr=hexstr.trimmed();
hexstr=hexstr.replace("",",");
QStringList sl=hexstr.split(",");
foreach(QString s,sl)
{
if(!s.isEmpty())
qrst.append((char)s.toInt(0,16)&0xFF);
}
return qrst;
}

查看完整回答
反对 回复 2019-04-15
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

串口发送的数据是8位的,最大为255,就是FF,如果要发送大于255的数,必须变成几个字节发送,例如要发送十进制2315,就要将数据拆分 data(0)=2315/256; data(1)=2315%256; 这样就拆分开数据,再将数据发送出去。

查看完整回答
反对 回复 2019-04-15
  • 3 回答
  • 0 关注
  • 5710 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信