QT学习笔记——十进制与十六进制转换
——带符号十进制与两字节十六进制之间的转换
前言:两者转换一般用在串口通信的数据处理上,上位机接收到QByteArray类型的数据,转成QString类型,然后进行字符串截取拼接,获取数据。因此,下文两字节十六进制的数据类型是QString。十进制各种数据类型转换相对简单。下文带符号十进制数据类型是整型。
QByteArray byte = serial->readAll(); QString qstr = byte.toHex();
例子:0xFD67 和 -665
1、带符号十进制 转 两字节十六进制
int main(int argc, char *argv[]){ int num=-665;//正负皆可 QString qnum= QString::number(num,16).right(4);//裁剪字符串前面多余的f std::cout<<qnum.toUpper().toStdString()<<std::endl; return 0; }
输出:FD67
2、两字节十六进制 转 带符号十进制
int main(int argc, char *argv[]){ int num;bool ok; QString qnum = "FD67"; num = qnum.toInt(&ok,16); if(!(qnum.at(0)>='0'&&qnum.at(0)<='7')){//非正数 num = num & 0x7FFF; //清除符号位 num = ~num; //反码 num = num & 0x7FFF; //清除左边多余位 num = num + 1; //加1 num = num * -1; //符号位 } std::cout<<num<<std::endl; return 0; }
作者:Cyfeng
链接:https://www.jianshu.com/p/938bd6393405
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)