zoukankan      html  css  js  c++  java
  • Qt通用方法及类库7

    函数名

        //int转字节数组
        static QByteArray intToByte(int i);
        static QByteArray intToByteRec(int i);
    
        //字节数组转int
        static int byteToInt(const QByteArray &data);
        static int byteToIntRec(const QByteArray &data);
        static quint32 byteToUInt(const QByteArray &data);
        static quint32 byteToUIntRec(const QByteArray &data);
    
        //ushort转字节数组
        static QByteArray ushortToByte(ushort i);
        static QByteArray ushortToByteRec(ushort i);
    
        //字节数组转ushort
        static int byteToUShort(const QByteArray &data);
        static int byteToUShortRec(const QByteArray &data);
    

    函数体

    QByteArray QUIHelper::intToByte(int i)
    {
        QByteArray result;
        result.resize(4);
        result[3] = (uchar)(0x000000ff & i);
        result[2] = (uchar)((0x0000ff00 & i) >> 8);
        result[1] = (uchar)((0x00ff0000 & i) >> 16);
        result[0] = (uchar)((0xff000000 & i) >> 24);
        return result;
    }
    
    QByteArray QUIHelper::intToByteRec(int i)
    {
        QByteArray result;
        result.resize(4);
        result[0] = (uchar)(0x000000ff & i);
        result[1] = (uchar)((0x0000ff00 & i) >> 8);
        result[2] = (uchar)((0x00ff0000 & i) >> 16);
        result[3] = (uchar)((0xff000000 & i) >> 24);
        return result;
    }
    
    int QUIHelper::byteToInt(const QByteArray &data)
    {
        int i = data.at(3) & 0x000000ff;
        i |= ((data.at(2) << 8) & 0x0000ff00);
        i |= ((data.at(1) << 16) & 0x00ff0000);
        i |= ((data.at(0) << 24) & 0xff000000);
        return i;
    }
    
    int QUIHelper::byteToIntRec(const QByteArray &data)
    {
        int i = data.at(0) & 0x000000ff;
        i |= ((data.at(1) << 8) & 0x0000ff00);
        i |= ((data.at(2) << 16) & 0x00ff0000);
        i |= ((data.at(3) << 24) & 0xff000000);
        return i;
    }
    
    quint32 QUIHelper::byteToUInt(const QByteArray &data)
    {
        quint32 i = data.at(3) & 0x000000ff;
        i |= ((data.at(2) << 8) & 0x0000ff00);
        i |= ((data.at(1) << 16) & 0x00ff0000);
        i |= ((data.at(0) << 24) & 0xff000000);
        return i;
    }
    
    quint32 QUIHelper::byteToUIntRec(const QByteArray &data)
    {
        quint32 i = data.at(0) & 0x000000ff;
        i |= ((data.at(1) << 8) & 0x0000ff00);
        i |= ((data.at(2) << 16) & 0x00ff0000);
        i |= ((data.at(3) << 24) & 0xff000000);
        return i;
    }
    
    QByteArray QUIHelper::ushortToByte(ushort i)
    {
        QByteArray result;
        result.resize(2);
        result[1] = (uchar)(0x000000ff & i);
        result[0] = (uchar)((0x0000ff00 & i) >> 8);
        return result;
    }
    
    QByteArray QUIHelper::ushortToByteRec(ushort i)
    {
        QByteArray result;
        result.resize(2);
        result[0] = (uchar)(0x000000ff & i);
        result[1] = (uchar)((0x0000ff00 & i) >> 8);
        return result;
    }
    
    int QUIHelper::byteToUShort(const QByteArray &data)
    {
        int i = data.at(1) & 0x000000FF;
        i |= ((data.at(0) << 8) & 0x0000FF00);
    
        if (i >= 32768) {
            i = i - 65536;
        }
    
        return i;
    }
    
    int QUIHelper::byteToUShortRec(const QByteArray &data)
    {
        int i = data.at(0) & 0x000000FF;
        i |= ((data.at(1) << 8) & 0x0000FF00);
    
        if (i >= 32768) {
            i = i - 65536;
        }
    
        return i;
    }
    
  • 相关阅读:
    IDEA激活及使用丶
    内网渗透-windows认证
    应急响应必备技能
    云计算期末考试---
    常见GetShell
    SQL Sever提权
    Socks协议以及代理转发工具分析
    最近两场HVV总结
    ATK&CK红队评估实战靶场 (一)的搭建和模拟攻击过程全过程
    应急响应之勒索病毒
  • 原文地址:https://www.cnblogs.com/feiyangqingyun/p/12732185.html
Copyright © 2011-2022 走看看