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);
    }
  • 相关阅读:
    STL 算法 std::min
    SAP UI5 初学者教程之五:视图控制器初探 试读版
    SAP UI5 的初始化过程
    Angular 应用里的摇树优化
    Angular 应用里的 vendor.js 是用来干什么的?
    SAP UI5 初学者教程之四:XML 视图初探试读版
    SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
    SAP UI5 初学者教程之二:SAP UI5 的引导过程(Bootstrap) 试读版
    SAP UI5 初学者教程之一:Hello World 试读版
    SAP UI5 初学者教程的学习目录
  • 原文地址:https://www.cnblogs.com/sherlockhomles/p/3213840.html
Copyright © 2011-2022 走看看