网络编程 4.11

大小端存储

int main(int argc, const char *arg[])
{
    int num=0x12345678;
    //定义一个字符串,指向num的首地址
    char* ptr=(char*)#
    if(*ptr==0x12)
    {
        printf("大端存储\n");
    }else if(*ptr==0x78)
    {
        printf("小端存储\n");
    }

    return 0;
}    

int main(int argc, const char *argv[])
{
    //建立一个共同体
    union Endio
    {
        int num;
        char ch;
    }data;
    //给num赋值
    data.num=0x12345678;
    if(data.ch==0x12)
    {
        printf("大端存储\n");
    }else if( data.ch==0x78)
    {
        printf("小端存储\n");
    }
    return 0;
}

主机字节序转换网络字节序

int main(int argc, const char *argv[])
{
    //定义一个4字节
    unsigned int num=0x12345678;
    //定义一个2个字节的整数
    unsigned short value=0x1234;

    //将主机字节序转换为网路字节序
    unsigned int num1=htonl(num);
    unsigned short value1=htons(value);

    printf("num1=%#x\n",num1);
    printf("value1=%#x\n",value1);
    return 0;
}

点分十进制和整数的转换

int main(int argc, const char *argv[])
{
    //建立一个IP地址
    char* ip="192.168.71.128";
    //调用函数点分十进制转化为整数
    in_addr_t ip_test= inet_addr(ip);

    printf("ip_test= %#x\n",ip_test);
    printf("对应的主机字节序=%#x\n",ntohl(ip_test));    
    return 0;
}

思维导图

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值