大端与小端

互联网使用网络字节顺序采用大端模式进行编址,大端存储也称为网络字节序,因为TCP/IP包在网络中传输时都要求以这种次序,以其他形式存储数据的机器(主机字节顺序根据处理器的不同而不同,如PowerPC处理器,使用大端模式,而Pentuim处理器使用小端模式),则必须在传送数据之前把首部转换成网络字节序。


网络字节顺序到主机字节顺序的转换(需要大小字节转换时):

#define ntoh16(x)  ((((x)&0x00ff)<<8)|((x)&0xff00)>>8))

#define NTOH16(x)  ((x)=((UINT16)(ntoh16(x))))

 

#define ntoh32(x)  ((((x)&0x000000ff)<<24)|/

                               (((x)&0x0000ff00)<<8)|/

                               (((x)&0x00ff0000)>>8)|/

                               (((x)&0xff000000)>>24)))

#define NTOH32(x)   ((x)=((UINT32)(ntoh32(x))))

 

#define NTOH64(x)   ((x)=((UINT64)(((ntoh32((x)&0xffffffff))<<32)|/

                                 (ntoh32(((x)>>32)&0xffffffff)))))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值