为什么要区分大小端,是因为在内存中一般是以字节为单位,一个字节有8bit。但是,很多的数据长度却超过8bit,那么就会存在多字节排序的问题,数据高低字节的排序就会出现问题,从而产生了大小端两种存储模式。以便于规范和统一数据的存储顺序。
大端序:数据的高字节存放在低地址,低字节存放在高地址
小端序:数据的高字节存放在高地址,低字节存放在低地址
例子:数据0x12345678在大、小端两种存储模式下数据的存储情况,如下表
内存地址 | 大端序 | 小端序 |
0x400 | 0x12 | 0x78 |
0x401 | 0x34 | 0x56 |
0x402 | 0x56 | 0x34 |
0x403 | 0x78 | 0x12 |