如何把十六进制数存在qbytearray

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把十六进制数存在qbytearray相关的知识,希望对你有一定的参考价值。

参考技术A 1. 利用memcpy拷贝内存数据
//自定义person结构体
Cpp代码
typedef struct

int age;
char name[20];
Person;

//向QByteArray写入多个结构体
void writeStruct()

QByteArray ba;
ba.resize(2*sizeof(Person)); //设置容量

//序列化
for(int i=0;i<2;i++)

Person p1;
p1.age=10+i;
strcpy(p1.name,"javaeye");
memcpy(ba.data()+i*sizeof(Person),&p1,sizeof(Person)); //指针移动,写入多个数据


//还原数据
Person *person=(Person*)ba.data();
qDebug()<<person->age<<"---"<<person->name;

person++;
qDebug()<<person->age<<"---"<<person->name;


memcpy只能处理字段为基本类型的结构体, 当使用QString name, 我用person->name去访问其值, 程序崩溃; 由此可见,内存数据无法还原构建成QString类. 如果要写入自定的QT类, 只能借助QBuffer了, 通过二进制流写入

以上是关于如何把十六进制数存在qbytearray的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Redshift 中将十六进制数转换为二进制数?

sql Server如何编写函数实现把十进制数转换为二进制数?求大神相助!!

怎么在Word或者Excel里面把十进制的数字转换成二进制或者十六进制?

JAVA如何将二进制数转换成文件?

C语言如何把11位16进制字符串转成16进制数?

C语言如何把11位16进制字符串转成16进制数?