什么是字节序


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/03/19/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AD%97%E8%8A%82%E5%BA%8F/

摘要

本文主要讲述了:

  1. 什么是字节序
  2. 大端
  3. 小端

正文

什么是字节序

字节序(Endianness)指的是在储存、传输 1 个多字节数据时,高位字节与低位字节的地址顺序。

字节序可分为两种模式:

  • 大端(Big Endian),英文缩写为 BE。
  • 小端(Little Endian),英文缩写为 LE。

注:UTF-8 编码不区分大端小端

大端

大端指的是:储存、传输 1 个多字节数据时,数据的高位字节位于内存的低地址,数据的低位字节位于内存的高地址。

网络传输协议中的 IPv4、IPv6、TCP、UDP 都采用大端顺序。

示例:将0x12345678按照大端形式存储传输。

Address Byte
0 12
1 34
2 56
3 78

示例:将0x123456780x23456789按照大端形式存储传输。

Address Byte
0 12
1 34
2 56
3 78
4 23
5 45
6 67
7 89

小端

小端指的是:储存、传输 1 个多字节数据时,数据的低位字节位于内存的低地址,数据的高位字节位于内存的高地址。

x86 架构、x86-64 架构都采用小端顺序。

示例:将0x12345678按照小端形式存储传输。

Address Byte
0 78
1 56
2 34
3 12

示例:将0x123456780x23456789按照小端形式存储传输。

Address Byte
0 78
1 56
2 34
3 12
4 89
5 67
6 45
7 23

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/03/19/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AD%97%E8%8A%82%E5%BA%8F/


本文对你有帮助?请支持我


支付宝
微信