0. 一句话总结
从左向右读(从低地址到高地址),
先遇到权重“大”的就是“大”端字节序,
先遇到权重“小”的就是“小”端字节序。
1. 详细解释
计算机存储的最小单位是比特(bit),一个比特只有0和1两种状态。相邻的8个比特构成一个字节(byte)。字节通常是程序可以寻址的最小单元,每个字节都有各自独立的地址,相邻字节的地址逐个递增。
每个字节由8个比特组成,所以共有2的8次方(即256)种状态。常用16进制来表示一个字节的值:前后4个比特分别为一组,每组比特可能的取值有16个:0~9
以及A~F
。所以16进制下,一个字节是用两个数字表示的。
下面我们只考虑计算机存储数字的情况。一个字节的存储范围是非常有限的(有符号数0到255,无符号数-128到127),超过这个范围的数字就要用多个连续的字节表示。这里就出现了字节顺序的问题:到底是把高位字节放在高地址,低位字节放在低地址,还是反过来呢?比如0x12345678需要占用4个字节,那就有两种可能的存储顺序:
注意:0x12是一个字节,作为一个整体,无论使用哪种方式,1和2的