zoukankan      html  css  js  c++  java
  • Qt序列化格式分析(qint,QString)(非常简单好用)

    最近项目需要进行QT开发环境下对传输对象进行序列化与反序列化处理,对基本类型的处理在使用QT默认的序列化方式还是完全手工序列化这两种方式之间有些犹疑不定,边想了解下QT默认序列化基本类型的格式,项目中只用到了整形和字符串类型,所以只对这两类基本类型进行了简单分析。

             分析方式是直接使用QT的方式生成二进制文件,用FlexHEX打开查看分析,生成二进制的代码直接从QT的帮助文档粘贴的,内容如下,稍作修改:

        QFile file("file.dat");

        file.open(QIODevice::WriteOnly);

        QDataStream out(&file);

        //out << (qint16)42;

        //out << (qint8)42;

        out << QString("汉");

        file.flush();

        file.close();

    测试结果如下:

    输入

    类型

    序列化后的二进制文件

    42

    qint16

    00 2A

    42

    Qint8

    2A

    QString

    00 00 00 02 6C 49

    结论:

           整形的qint8,qint16,qint32分别使用一个、两个、四个字节存放,与内存一致;QString类型的前四个字节表示字符的字节长度,后面为字符的UTF16编码。

    http://blog.csdn.net/programmerlizhezhe/article/details/17383339

  • 相关阅读:
    windows 根据端口查看进行PID 并杀掉进程
    Linux下安装mysql-5.7
    springcloud参考视频和源码笔记
    idea中配置热部署
    技术/方案实现目录
    系统功能设计产出模版
    JQuery点击行tr实现checkBox选中与未选中切换
    Java学习第一天
    ES6 记录
    微信小程序记录
  • 原文地址:https://www.cnblogs.com/findumars/p/5169970.html
Copyright © 2011-2022 走看看