14.大端和小端的区别

  1. 14.大端和小端的区别
    1. 14.1 题目
    2. 14.2 深入解析
    3. 14.3 答题示例
    4. 14.4 关键词联想

14.大端和小端的区别


14.1 题目

计算机存储中大端和小端存储有什么区别?网络通讯中一般采用哪种存储方式呢?


14.2 深入解析

  • 它们是两种不同的字节存储顺序。
    • 大端存储:高字节存储在低地址,低字节存储在高地址
    • 小端存储:低字节存储在低地址,高字节存储在高地址
  • 网络通讯中一般采用大端(网络字节序);接收端再按本机字节序做转换(如 htons/ntohl 等)。

举例说明

  • 十六进制数据 0x11223344,44 是最低字节,11 是最高字节。
  • 大端模式存储:
    11    22    33    44
    0     1     2     3
    
  • 小端模式存储:
    44    33    22    11
    0     1     2     3
    

14.3 答题示例

大端和小端都是描述多字节数据在内存中存储顺序的方式:

  • 大端 (Big‑Endian):将数据的最高有效字节(MSB)存放在低地址,最低有效字节(LSB)存放在高地址。
  • 小端 (Little‑Endian):将数据的最低有效字节存放在低地址,最高有效字节存放在高地址。

举例:16 进制 0x11223344 在内存中:

大端:[11][22][33][44]   (地址 0→3)  
小端:[44][33][22][11]   (地址 0→3)  

在网络协议中,通常约定使用 大端(也称网络字节序),发送端将数据打包为大端格式;接收端收到后再根据自身平台字节序做转换。这样可以保证不同架构机器之间的数据传输一致性。


14.4 关键词联想

  • 字节序(Endianness)
  • MSB vs LSB
  • 网络字节序 (Network Byte Order)
  • 本机字节序 (Host Byte Order)
  • 字节序转换(ntohl, htonl 等)
  • 跨平台兼容性
  • 结构体序列化
  • 内存视图与对齐


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏