ArrayUtils.h
/* ---------------------------------------------------------- * 文件名称:ArrayUtils.h * * 作者:秦建辉 * * MSN:splashcn@msn.com * QQ:36748897 * * 博客:http://www.firstsolver.com/wordpress/ * * 开发环境: * Qt Creator 2.6.0 * Qt Library 4.8.3 * Ubuntu 12.10 * * 版本历史: * V1.0 2012年11月16日 * 实现整型与字节数组之间的相互转换 ------------------------------------------------------------ */ #ifndef ARRAYUTILS_H #define ARRAYUTILS_H #include <QDataStream> class ArrayUtils { public: /* * 功能:将整型转换为字节数组,默认字节序为小端 * 参数说明: * value:要转换为字节数组的整型数据 * bo:字节序,默认为小端 * 返回值: * 转换后得到的字节数组 * 异常抛出:无 */ static QByteArray Int32ToByteArray(qint32 value, QDataStream::ByteOrder bo = QDataStream::LittleEndian) throw(); /* * 功能:将字节数组转换为整型,默认字节序为小端 * 参数说明: * ba:要将开头4字节转换为整型的字节数组 * bo:字节序,默认为小端 * 返回值:转换后得到的整型数据 * 异常抛出: * 无 * 说明: * 如果ba长度少于4,返回值均为0 */ static qint32 ByteArrayToInt32(const QByteArray & ba, QDataStream::ByteOrder bo = QDataStream::LittleEndian) throw(); }; #endif // ARRAYUTILS_H
ArrayUtils.cpp
#include "ArrayUtils.h" QByteArray ArrayUtils::Int32ToByteArray(qint32 value, QDataStream::ByteOrder bo) throw() { QByteArray ba; QDataStream out(&ba, QIODevice::WriteOnly); out.setByteOrder(bo); // 设置字节序 out << value; return ba; } qint32 ArrayUtils::ByteArrayToInt32(const QByteArray & ba, QDataStream::ByteOrder bo) throw() { qint32 value; QDataStream in(ba); // 构建只读数据流 in.setByteOrder(bo); // 设置字节序 in >> value; return value; }