QT QByteArray的十进制与十六进制(字符型) 互相转换 -串口编程

QT 十进制(DEC)十六进制(HEX)的转化 10进制转化为16进制 int setNum= 254; QString HEXNum = QString("%1").arg(setNum,0,16,QLatin1Char('0')).toUtf8(); qDebug() << "HEXNum: " << HEXNum; 16进制转化为10进制 bool ok; QString hex = "EFC9A32C"; ulong dec = hex.toLongLong(&ok, 16); qDebug()<< 阅读详情
AI摘要

本文介绍在QT环境下如何实现不同进制之间的转换,并提供了具体的代码实例。同时,文章还分享了组装QByteArray数组用于串口通信的过程。

串口使用中会经常用到。目前使用到的是QByteArray::number(源数据 ,目标输出的进制)。作下记录,以供日后参考。
转制方法有很多,这只是其中一种,有其他QT的进制转换方法,欢迎评论区交流!

十进制转为十六进制(tmp[0] = ‘0x14’)

int num = 20;
//1、把输入的十进制数据转换为16进制。 QByteArray::fromHex代表读取十六进制数据,------
qDebug() << QByteArray::fromHex( QByteArray::number(num,16) ); // 0x14
//2、上下这俩代码等效------------
QByteArray tmp;
tmp.append(num );


long a = 63; // 十进制数
QString s = QString::number(a, 16);            // s == "3f"
QString t = QString::number(a, 16).toUpper();  // t == "3F"

十六转十进制

int b = 0x70;  //其实这样存储后,直接输出就是整型数据
// 把这个数据转换为10进制字符串,此时number_tmp 变为字符串'112'
QString number_tmp = QString::number(b,10);
qDebug() <<number_tmp.toUInt(); // 这个函数默认以十进制输出base=10

// QByteArray存的十六进制转成string和int
QByteArray tmp;
tmp[0] = 0x1a;
QString msg = tmp.toHex();
int num = msg.toInt(NULL,16);// toInt的16代表数据是16位
qDebug() << "msg :" << msg  << "; num : " << num;

另外:QString.toUInt() 可以指定任何进制(如十六进制)输出为十进制
如指定 【输入格式为16进制】的整型数

 QString str = "FF";
 bool ok; // 标志位,可以为NULL

 uint hex = str.toUInt(&ok, 16);     // hex == 255, ok == true
 uint dec = str.toUInt(&ok, 10);     // dec == 0, ok == false

记录一个组装QByteArray数组命令的过程 - QT 串口通信

    // 组装命令
    QByteArray AT_cmd;
    AT_cmd.resize(buf_len);
    AT_cmd.clear();
    AT_cmd.append(QByteArray::fromHex("21547A"));
    AT_cmd.append(QByteArray::fromHex( tmp.toHex().toUpper() ) ); // 商品中文名称
    AT_cmd.append(QByteArray::fromHex("0x64") );  // 价格--需要从数据库中提取
    AT_cmd.append(QByteArray::fromHex(QString::number(number.toUInt(),16).toLatin1()) );  // 数量

    // 计算校验码 -- 是unsigned char类型
    uint8_t crc[2] = {0};
    check_sum(crc,(unsigned char *)AT_cmd.data(),AT_cmd.length()-2); // 需要校验的长度是当前长度 - 2字节
    AT_cmd.append(QByteArray::fromHex( QByteArray::number(crc[0],16) ) ); // 载入校验码
    AT_cmd.append(QByteArray::fromHex( QByteArray::number(crc[1],16) ) ); // 载入校验码
    AT_cmd.append(QByteArray::fromHex("22"));
    AT_cmd.append(QByteArray::fromHex("44"));
Qt进制转换以及十六进制大小写格式输出 quint16 num=0x2abc; qDebug()<<"十进制输出"<<QString("%1").arg(num); qDebug()<<"16进制小写输出"<<QString("%1").arg(num,4,16,QLatin1Char('0')); //不足四位补0 qDebug()<<"16进制大写输出"<<QString("%1").arg(num,4,16,QLatin1Char('0'... 阅读详情

相关推荐

C++单、双精度浮点数16进制转10进制原理及代码

浮点数有两种:单精度float(4字节) 和 双精度double(8字节)。本文介绍浮点数16进制转10进制的原理及C++代码。

寒木休思的博客 6310

Qt进制转换(十进制转十六进制)

Qt进制转换 十进制转十六进制 转化方法如下: int x =10; unsigned int ux = x; QString xVal = QString::number(ux, 16);//得到十六进制数(字符串方式表达) 如果有用的话,欢迎点赞????关注????

编程猴 1万+

QT 通信之 QByteArray

qt通信之QByteArray

m0_62885376的博客 6774

Qt 10进制和16进制转换

Qt 10进制和16进制转换

FreeLikeTheWind的博客 2148

QT串口通信实战:QByteArray十六进制与十进制互转的5种方法(附代码)

本文深入探讨了在QT串口编程中,处理QByteArray数据时十六进制与十进制互转的五种核心方法。文章结合串口通信实战场景,详细解析了QByteArray::number()、toHex()/fromHex()、QString::arg()格式化以及多字节数值与字节序处理等技巧,并提供了完整的代码示例和性能优化建议,帮助开发者高效、准确地实现数据解析与协议组装。

m2n3o4p5的博客 232

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

QT里面的数据转化成十六进制比较麻烦,其他的int或者byte等型都有专门的函数,而十六进制没有特定的函数去转化,这我在具体的项目中已经解决(参考网上大神)->小项目程序。这是我写TCP发送程序的小小总结,网上哟很多这种资料,但是有很多不适合,总结一下,QT里面的数据转换一定要明确进制和类型,其次是调用函数里面参数写具体!上面的程序就是先转换成16进制的QString,千万别写直接number()没有里面参数的转换!实现的功能都是一样的,第二种简单一点,下面以第二种为例,第一种类似!

QtCompany的博客 775

QT QByteArray在串口通信中的进制转换实战:十进制与十六进制的灵活应用

本文深入探讨了QT框架中QByteArray在串口通信中的核心应用,重点解析了十进制与十六进制数据转换的实战技巧。通过具体代码示例,详细说明了如何正确使用QByteArray::number()、toHex()、fromHex()等方法进行数据打包与解析,并分享了组装与解析完整串口数据帧的避坑指南与性能优化建议,帮助开发者高效处理串口通信中的字节流数据。

cuda7parallel的博客 884

ansys workbench 静力结构分析 高阶教程

ansys workbench 静力结构分析 高阶教程 目录ansys workbench 静力结构分析 高阶教程新建工程模型导入设置材料模型简化: 主要内容: 材料设置、模型简化、网格细化、约束分析、接触设置、求解设置、报错处理、结果分析 基础教程: ansys workbench 静力结构分析 基础操作流程(入门) ansys版本: 19.0(16.0及以上均可) 参考资料: 推荐教学视频《有限元分析 张晔》(超详细 ???? )、ansys workbench 超级学习手册(查阅用) 说明:一些基

weixin_43434624的博客 5万+

关于QByteArray存储十六进制 与十六进制互转

概要 1、Qt中 QByteArray 存储十六进制的数(例如 0xff),实际是以ASCII码存储的,存储形式为 '\xff'(其中 \ 是转码标识),单位是字节(一个字节存储一个十六进制数)如果需要比较的话,用 array.at(0) == '\xff' 表示,而不是 array.at(0) == 0xff 。 2、判断 QByteArray 里面存储的是 int 整数,还是字符 'f':如果是 int 整数,则用 int 或者 hex 来判断,如果是字符 ‘f’ ,则用 ‘f’ 来判断。 比如

bd_jc的博客 5676

python123题目——判断火车票座位B(异常)

类型:流程控制。

m0_62488776的博客 3569

grafana对接zabbix数据展示

【配置】点击【模板】点击【创建模板】添加三个监控项:【名称】搜索【】创建的模板;点击上方【监控项】,点击创建【监控项】点击上方【触发器】点击【创建触发器】主机关联监控模板:左侧【配置】点击 【主机】点击【Zabbix server】查看:左侧点击【监测】点击【主机】点击【Zabbix server】点击最新数据,找到添加的三个模板主机关联监控模板:左侧【配置】点击 【主机】点击【Zabbix server】把监控模板用起来① 明确获取指标数据的方法。

2401_83883919的博客 6594

QT 十进制与十六进制(字符型) 互相转换 -串口编程

串口使用中会经常用到。目前使用到的是QByteArray::number(源数据 ,目标输出的进制)。作下记录,以供日后参考。

weixin_45590571的博客 2712

【实战指南】OpenClaw Telegram 群聊不响应完整解决方案:从获取群 ID 到关闭隐私模式全流程

将整个从“获取群组 ID → 配置 OpenClaw Telegram 通道 → 关闭隐私模式 → 测试”的全流程都整合进去。

hampeter的博客 3489

QByteArray::fromHex转换原理

QByteArray::fromHex转换原理利用QByteArray分离十六进制数QByteArray在Qt5.9中的赋值和显示以及存储形式(toHex()函数)串口通信之 QByteArray详解 利用QByteArray分离十六进制数 [static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded) Returns a decoded copy of the hex encoded array hexEncoded. I

宁静致远的博客 7364

RobotFramework二次开发——实时日志

背景基于RobotFramework的二次开发,少不了要打印实时日志出来,比如广泛应用的工具ride中,在执行用例时会把执行过程中的log全部打印出来,如果二次开发的时候,执行用例只能静默等待执行完毕,那只能算是一个半成品。结果在最后,不想看过程的可以直接跳到最后思路RobotFramework的日志有好几种,一个是执行后的log文件,这个文件可以作为数据留存,但是没办法实时获取,因为文件是在执行完

点点寒彬的博客 1万+

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南

本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。

2201_76125261的博客 1554

Qt中串口通信,十六进制进制转换问题

在与串口通信时,我需要给串口发送指定报文格式的命令,在接收到串口返回的数据后需要转换成浮点数并且显示出来。这里讲一下我自己碰到的问题,以及我发现的解决方法,如果大家有更好的方法可以在下方留言一起讨论。 为了模拟真实的串口通信环境,我这里是用自己写的软件和在网上下载的串口助手进行数据交互。由串口助手发送"42F6CCCD",在自己写的窗口中转换成浮点数并显示。然而本应该显示"123.4",但是显示出来却变成"6.27543e-41",显然肯定是有问题的。 QByteArray strhex = my_

猪在黑魔纹里 4880

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 570

Qt 进制转换,文本与十六进制的转换(用于串口和网络调试)

前言 在串口调试和TCP或UDP调试中经常会用到进制的转换,文本转换。 一、进制转换 int dec = 14; int dec = 20; // 十进制转十六进制(保留4位) qDebug() << QString("%1").arg(dec, 4, 16, QLatin1Char('0')); //Return "0014" // 十进制转二进制(至少保留4位) qDebug() << QString("%1").arg(dec, 4, 2, QLatin1Char('0'

weixin_43680751的博客 1848

C#串口通信上位机开发实战:轻松实现硬件控制与数据交互

摘要:本文介绍如何使用C#开发串口通信上位机应用,实现与硬件设备(如传感器、PLC等)的数据交互。文章涵盖串口通信原理、开发环境配置、功能实现(串口连接管理、数据收发、实时显示)及UI设计,重点讲解SerialPort类的应用、多线程数据接收处理和错误优化。通过Windows Forms构建直观界面,帮助开发者快速掌握工业控制和自动化系统中的串口通信技术,为物联网和智能设备开发提供实用解决方案。全文约150字。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3029

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

QByteArray详解(qt)

QByteArray在串口通讯中经常被使用,有一定必要较为全面详细的对QByteArray进行阐述。 1 初始化 2 访问与赋值 访问QByteArray主要有4中方式,分别为[]、at()、data[]和constData[]。其中[]和data[]为可读可写,at()和constData[]仅为可读。如果仅是读,则通过at()和constData[]访问速度最快,因可避免复制处理。示例如下: QByteArray ba; ba.resize(6); ba[0] = 0x3c; ba[1] =...

6032

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

qt 中文转十六进制_Qt - 关于QByteArray存储十六进制 与十六进制互转

概要Qt中 QByteArray 存储十六进制的数(例如 0xff),实际是以ASCII码存储的,存储形式为 '\xff'(其中 \ 是转码标识),单位是字节(一个字节存储一个十六进制数)如果需要比较的话,用 array.at(0) == '\xff' 表示,而不是 array.at(0) == 0xff 。判断 QByteArray 里面存储的是 int 整数,还是字符 'f':如果是 int ...

weixin_30340109的博客 1409

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

QT十进制十六进制字符串转换

QByteArray在串口通讯中经常被使用,有一定必要较为全面详细的对QByteArray进行阐述。本文通过以下几个部分加以介绍: 1. 初始化 2. 访问与赋值 3. 添加、删除、插入与替换操作 4. 查找与比较 5. 数据转换与处理 1 初始化 2 访问与赋值     访问QByteArray主要有4中方式,分别为[]、at()、data[]和constData[]。其中[]...

biersibao的博客 3万+

Qt --- QByteArray强大用途

Qt中无论是串口serialport还是tcp网络通信等,直接接收到(或者要发送)的数据都是QByteArray,之后的数据处理部分,无论你转为char*/char[]还是使用最多的QString,都得通过QByteArray转换而来,那我们在后面的数据处理部分可不可以直接用QByteArray呢?这就要求我们对QByteArray有很深刻的认识。 一. QByteArray 类 1. 初始化 QByteArray ba(48, 0); //创建一个长度为48字节,初始...

sunny_hu92的博客 3511

16进制数组转成10进制 qt_[转] QT十进制十六进制字符串转换

QByteArray在串口通讯中经常被使用,有一定必要较为全面详细的对QByteArray进行阐述。本文通过以下几个部分加以介绍:初始化访问与赋值添加、删除、插入与替换操作查找与比较数据转换与处理1 初始化2 访问与赋值访问QByteArray主要有4中方式,分别为[]、at()、data[]和constData[]。其中[]和data[]为可读可写,at()和constData[]仅为可读。如果...

weixin_39990558的博客 1266
上一篇: Qt 字符编码转换(UTF-8 转换为 GBK) \u7528\u6237\u672a\u7b7e\u7ea6
下一篇: QT-widget时多界面切换的StackedWidget方法
温柔大猩猩
博客等级 码龄7年 65粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值