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);
    }
  • 相关阅读:
    python如何使用Matplotlib的作图
    python如何使用Matplotlib的作图
    Python下载M3U8小鹅通回放视频代码
    Python下载M3U8小鹅通回放视频代码
    python自动化之JS处理滚动条
    python自动化之JS处理滚动条
    数据分析项目-数据分析岗位近况分析
    数据分析项目-数据分析岗位近况分析
    Python安装模块常用镜像源
    使用ABSL(ABAP Script Language)完成SAP Cloud for Customer里Customer Quote以及行项目的增删改查
  • 原文地址:https://www.cnblogs.com/sherlockhomles/p/3213840.html
Copyright © 2011-2022 走看看