CPU中的Little Endian与Big Endian
今天在学习利用buildroot编译软件包的时候,make menuconfig之后在Target Architecture选项中发现了同一种CPU架构中有两个不同的选项,分别是little endian和big endian,如下图:
在好奇心的驱使下我就必应了一下,原来是不同CPU存储字节的顺序不同。
Little Endian与Big Endian简介
在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下:
- Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
- Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
- 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
比如int a = 0x05060708
在BIG-ENDIAN的情况下存放为:
| 字节号 | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 数据 |

本文介绍了CPU中的Little Endian和Big Endian两种字节序,阐述了它们的区别和定义,并提供了判断系统字节序的方法。Little Endian将低位字节存储在低地址,高位字节在高地址,而Big Endian则相反。常见的x86 CPU遵循Little Endian,而某些ARM CPU支持切换字节序。
最低0.47元/天 解锁文章
1769

被折叠的 条评论
为什么被折叠?



