unix大小端转换函数

<pre name="code" class="cpp">//互联网上可以有不同主机字节顺序,Unix提供了四个函数进行转换
#include<stdio.h>
#include <netinet/in.h>
/*
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
*/
int main()
{
    //网络字节顺序 network byte order 大端字节顺序
    //主机字节顺序 host    byte order 小端字节顺序
    //ntohl htonl 32bytes 
    //ntohs htons 16bytes
    uint32_t net_addr = 0x12345678;
    uint32_t host_addr = ntohl(net_addr);
    uint32_t net_addr_back = htonl(host_addr);

    printf("net_addr\t=%x\n",net_addr);
    printf("host_addr\t=%x\n",host_addr);
    printf("net_addr_back\t=%x\n",net_addr_back);

    uint16_t net_addr_s = 0x1234; 
    uint16_t host_addr_s = ntohs(net_addr_s);
    uint16_t net_addr_s_back = htons(host_addr_s);
    
    printf("net_addr_s\t=%x\n",net_addr_s);
    printf("host_addr_s\t=%x\n",host_addr_s);
    printf("net_addr_s_back\t=%x\n",net_addr_s_back);
    return 0;
}
[back@gx network]$ a.out       
net_addr        =12345678
host_addr       =78563412
net_addr_back   =12345678
net_addr_s      =1234
host_addr_s     =3412
net_addr_s_back =1234



 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值