![0d3939f82e3098831ea87a97e0b88bfa.png](https://img-blog.csdnimg.cn/img_convert/0d3939f82e3098831ea87a97e0b88bfa.png)
首先理清一下基本的概念:
1. 大多数机器使用时的8位的块(一个字节),作为可寻址的最小单位,
2. 机器级程序将内存视为非常大的字节数组(虚拟内存),内存的每个字节都由一个唯一的数字来表示(如下X的地址即为0x01234567)。
3. 多字节对象都被存储为连续的字节序列, 对象的地址为所使用的字节的最小的地址
举例说明:
32位机器,int一个X(4字节),它的地址值为0x100 十六进制为0x01234567,
1. 32位机器,验证下,四个字节32位满足OK没问题
2. 0x01是高位字节(大),0x67是低位字节(小)
3. 一个字节由二进制表达式00000000------------11111111转16进制表达式为00-----FF
那么我们就好很理解下面三个图中实际每个小格表示的是一个字节(8位),四个小格构成int数据
那么这4个字节存储在内存的0x100 0x101 0x102 0x103位置上,如何得出他们的字节顺序呢?
按照机器的处理器的储存模式决定的,大部分是由小端法机器
那么支持小端法排序的机器的字节排列顺序就是
![033739f625a72def82ce74c8537fa044.png](https://img-blog.csdnimg.cn/img_convert/033739f625a72def82ce74c8537fa044.png)
反之,大端法的则是
![8f736cbbd7f7f7404e8d5c7dc55321aa.png](https://img-blog.csdnimg.cn/img_convert/8f736cbbd7f7f7404e8d5c7dc55321aa.png)
大端小端的典故出自《格列佛游记》的鸡蛋之争,讽刺以前英法帝国的持续冲突。