大端和小端存储 --- Linux网络通信

本文介绍了大端模式和小端模式的存储原理,以及网络字节序的规定,即大端模式。同时,提到了在进行网络通信时需要将主机的数据模式转换为网络字节序,并列举了C语言中进行大小端转换的常用函数。此外,还指出了大小端模式在不同处理器间数据传递和网络数据传输中的应用,以及在处理结构体时的注意事项。
摘要由CSDN通过智能技术生成

1、什么是大、小端存储

  • 大端模式(big-endian): 高位字节排放在内存的低地址端 ; 低位字节排放在内存的低地址段 (高低,低高)
  • 小端模式 : 高字节高内存地址,低字节低内存地址

    例:一个十六进制数 : 0x12345678,存储的起始地址为:0011AA66

地址偏移 大端模式 小端模式
0x00 12 78
0x01 34 56
0x02 56 34
0x03 78 12

存储以字节为单位

2、网络字节序
网络字节序 : 大端模式  (TCP/IP规定好的数据表示格式,与具体的CPU类型,操作系统无关)
SO : 网络传输通信,以大端方式进行传输,传输到网络之前作数据模式转换预处理

3、大小端转换常用函数 (C)

  • uint32_t htonl(uint32_t host_long) //将32位的长整数从主机字节序转换成网络字节序
  • uint16_t htons(uint16_t host_short)
  • uint32_t ntohl(ui
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值