字节序

1 定义

字节序:多字节数据在内存中的存放顺序。

2 分类

包括大端序和小端序。

  1. 大端序(Big-Endian)将数据的低位字节存放在内存的高位地址,高位字节存放在低位地址。如网络字节序
    这种排列方式与数据用字节表示时的书写顺序一致,符合人类的阅读习惯。
  2. 小端序(Little-Endian),将一个多位数的低位放在较小的地址处,高位放在较大的地址处。如主机字节序

例如:在内存中存放整型数值168496141 需要4个字节,这个数值的对应的16进制表示是0X0A0B0C0D,这个数值在用大端序和小端序排列时的在内存中的示意图如下:
image

3 转换

  • 从主机字节序到网络字节序的转换函数:htons、htonl;
  • 从网络字节序到主机字节序的转换函数:ntohs、ntohl。
h   - host 主机,主机字节序
to  - 转换成什么
n   - network  网络字节序
s   - short  unsigned short
l   - long  unsigned int

4 参考

https://zhuanlan.zhihu.com/p/352145413
https://www.nowcoder.com/discuss/934904

posted @ 2022-07-13 15:00  云梦士  阅读(65)  评论(0编辑  收藏  举报