zoukankan      html  css  js  c++  java
  • 把数字按网络顺序或主机顺序存放到字符串中++++把字符串按网络顺序转换成数字++++把字符串按主机顺序转换成数字

    /****把数字按网络顺序放到字符串中****/

    int nNumToNet(int num,char *buf,int len){
        int   ret_int;
        short ret_short;
        if(sizeof(int)!=4  || sizeof(short)!=2){
            printf("本程序不能在低于32位的机器上运行!
    ");
            exit(1);
        }
        if(len==2){
            ret_short=(short)num;
            ret_short=htons(ret_short);
            memcpy(buf,(char *)&ret_short,len);
        }else if(len==4){
            ret_int=(int)num;
            ret_int=htonl(ret_int);
            memcpy(buf,(char *)&ret_int,len);
        }else{
            printf("转换网络顺序时长度[%d]只能是2或者4!
    ",len);
            return(-1);
        }
        return(0);
    }

    /****把数字按主机顺序放到字符串中****/

    int nNumToHost(int num,char *buf,int len){
        int   ret_int;
        short ret_short;
        if(sizeof(int)!=4  || sizeof(short)!=2){
            printf("本程序不能在低于32位的机器上运行!
    ");
            exit(1);
        }
        if(len==2){
            ret_short=(short)num;
            memcpy(buf,(char *)&ret_short,len);
        }else if(len==4){
            ret_int=(int)num;
            memcpy(buf,(char *)&ret_int,len);
        }else{
            printf("转换网络顺序时长度[%d]只能是2或者4!
    ",len);
            return(-1);
        }
        return(0);
    }

    /****把字符串按网络顺序转换成数字****/

    int nNetToNum(char *buf,int len){
        int   ret_int;
        short ret_short;
        if(sizeof(int)!=4  || sizeof(short)!=2){
            printf("本程序不能在低于32位的机器上运行!
    ");
            exit(1);
        }
        if(len==2){
            memcpy((char *)&ret_short,buf,len);
            ret_short=ntohs(ret_short);
            return((int)ret_short);
        }else if(len==4){
            memcpy((char *)&ret_int,buf,len);
            ret_int=ntohl(ret_int);
            return((int)ret_int);
        }else{
            printf("转换网络顺序时长度[%d]只能是2或者4!
    ",len);
            return(-1);
        }
        return(0);
    }

    /****把字符串按主机顺序转换成数字****/

    int nHostToNum(char *buf,int len){
        int   ret_int;
        short ret_short;
        if(sizeof(int)!=4  || sizeof(short)!=2){
            printf("本程序不能在低于32位的机器上运行!
    ");
            exit(1);
        }
        if(len==2){
            memcpy((char *)&ret_short,buf,len);
            return((int)ret_short);
        }else if(len==4){
            memcpy((char *)&ret_int,buf,len);
            return((int)ret_int);
        }else{
            printf("转换网络顺序时长度[%d]只能是2或者4!
    ",len);
            return(-1);
        }
        return(0);
    }
  • 相关阅读:
    OpenGL------光照+染色
    sicily 1345 能量项链
    sicily 1193 Up the Stairs
    sicily 1172 Queens, Knights and Pawns
    sicily 1206 Stacking Cylinders
    模拟退火算法解tsp问题
    js对象的属性可以是一个变量
    vue中/deep/的使用
    MySQL中DATEDIFF函数使用
    js中的this
  • 原文地址:https://www.cnblogs.com/sherlockhomles/p/3213840.html
Copyright © 2011-2022 走看看