引用百度百科的一句话就是:

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

反过来就是小端模式。

要理解这个定义,我们必须清楚内存的高地址和低地址分别是什么,数据的高位和低位又是什么。

回忆我们用过的带方格的写字本(方格本),假定这个方格本只有一行,并且这行只有4个格子,那么如果让我们写下1234(一千两百三十四)我们会怎么写呢。

很简单,第一个格子写1,第二个格子写2,第三个格子写3,第四个格子写4。四个格子从左至右连起来就是1234,这样就写完了。

在这里,我们可以将格子位置当成内存位置,第一个格子代表内存的低地址位,第四个格子代表内存的高地址位;而我们写在第一个格子的1代表数字千位(高位),第四个格子的4代表数字个位(低位)。也就是说我们在格子的低位,写了数字的高位;而在格子的高位,写了数字的低位,这种就是大端模式。

相反,如果我们写4321,那就是小端模式。


上面说的就是字节序,而在计算机中,1个数字由多个二进制位组成,我们假设一个数字由8个二进制位表示,而这8个bit位又是怎么排的呢。这个就涉及比特序,一般来说比特序和字节序是相同的,比如:

比特序1 0 0 1 0 0 1 0在大端系统中最高有效比特位为1、最低有效比特位为0,字节的值为0x92。在小端系统中最高、最低有效比特位则相反为0、1,字节的值为0x49。

参考文章:

https://baike.baidu.com/item/%E5%A4%A7%E5%B0%8F%E7%AB%AF%E6%A8%A1%E5%BC%8F

https://blog.csdn.net/liuxingen/article/details/45420455