本文作者: 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/
摘要
本文主要讲述了:
- 什么是字节序
- 大端
- 小端
正文
什么是字节序
字节序(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 |
示例:将0x12345678
、0x23456789
按照大端形式存储传输。
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 |
示例:将0x12345678
、0x23456789
按照小端形式存储传输。
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/
本文对你有帮助?请支持我
- 本文链接: 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/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。