• 字节、十六进制字符串相互转换(asc2hex、hex2asc)


    //==================================================================
    /**    
        功能:        将16进制数组转换成asc字符数组(短转长)
        @param[in]    hex :要转换的十六进制数组
        @param[in]    lenth :转换后的16进制数组的长度
        @param[out]    asc :转换后的asc字符数组(至少分配2倍的hex的大小)
        @par修改记录:
            2015.01.15    马兆瑞    修改asc不为空时出现的bug
    **/
    //==================================================================
    void hex2asc(unsigned char *hex, int hexlength, unsigned char *asc)
    {
        for(int i = 0; i < hexlength; i++)
        {
            sprintf((char*)asc+2*i, "%02X", hex[i]);
        }
    }
    
    //==================================================================
    /**    
        功能:        将asc字符数组转换成16进制数组(长转短),长度不足则末尾自动补F
        @param[in]    asc :要转换的asc字符数组
        @param[in]    lenth :转换后的16进制数组的长度
        @param[out]    hex :转换后的16进制数组
        @par修改记录:
            2015.12.22    马兆瑞
    **/
    //==================================================================
    void asc2hex(unsigned char *asc, int hexlength, unsigned char *hex)
    {
        if(strlen((char*)asc) < hexlength*2)
        {
            char *asc_temp = new char[hexlength*2+1];
            memset(asc_temp, 'F', hexlength*2+1);
            memcpy(asc_temp, asc, strlen((char*)asc));
            for(int i = 0; i < hexlength; i++)
            {
                char temp[3] = {asc_temp[i*2], asc_temp[i*2+1]};
                hex[i] = strtol(temp, 0, 16);
            }
            delete []asc_temp;
        }
        else
        {
            for(int i = 0; i < hexlength; i++)
            {            
                char temp[3] = {asc[i*2], asc[i*2+1]};
                hex[i] = strtol(temp, 0, 16);
            }
        }
    }

    void main()
    {
        unsigned char asc[] = "915600000221010021010A68", hex[100] = {0};
    
        asc2hex(asc, strlen((const char *)asc)/2 , hex);
    
        unsigned char ascr[512] = {0};
        hex2asc(hex, strlen((const char *)asc)/2 , ascr);
    }
     
  • 相关阅读:
    bound 很靠近0的mle
    order statistics 为什么3维要把6块加起来
    正态分布的来历
    互斥和独立
    平稳随机过程 会不会和随机过程矛盾呢?
    请问如何理解同一个随机过程,里面的两个随机变量的期望不同呢?
    bagging和boosting以及rand-forest
    arr = map(float,arr)输出问题
    lasso数学解释
    岭回归的数学解释
  • 原文地址:https://www.cnblogs.com/mzhrd/p/3454613.html
Copyright © 2020-2023  润新知