Qt中char数组转16进制字符
Tcp传入的16进制转16进制字符
关键点:char、QByteArray::toHex()、QByteArray::fromRawData()
知识点补充
- char在32bit或64bit系统中占一个1Byte
- char中实际存储的是数字,当存在字符时,会把字符转为ASCLL码中对应的数组,存储进内存中
- char占1Byte,即4bit,而一个16进制是2的4次方即需要4bit才能存储一个16进制,故一个char能存储2个16进制。
- 注意char与uchar的存储范围:
- char:-128127,hex:807F
- uchar:0255,hex:0FF
char中16进制转字符16进制
2种方法
方法1:使用QByteArray::fromRawData转化
ByteArray ss = QByteArray::fromRawData((const char*)data_struct_ptr_->data,data_len).toHex();
方法2:使用memcpy直接把char数据copy到QByteArray中
QByteArray ss3;
ss3.resize(data_len); //重新分配空间
memset((void*)(ss3.constData()),0,data_len ); //初始化空间
memcpy((void*)(ss3.constData()),(void*)(data_struct_ptr_->data),data_len); //copy
qDebug() << ss3.toHex(); //16进制字符串
END By Lvs
本文来自博客园,作者:Labant,转载请注明原文链接:https://www.cnblogs.com/lvshen/p/18117350
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧