字节序
字节序,很常见的说法是:大端,小端,在这里简单的介绍一下字节序。
- 对于现代人的阅读习惯来说,都是从左向右的,那么在这里规定,低字节在左,高字节在右。即:字节的地址增加也就是我们的阅读方向。
权重
- 越有权的话,越有力。在数字上的体现,即位权重。对于十进制来说,数字位越靠左边,表明该位权重也就越大。
Byte
- 对于一个Byte的数据来说,有专门的定义,我们可以将一个Byte看做为一个数字的权重位,即十六进制中的一个位。
大、小端典故
- 该典故起源于鸡蛋,具体的细节请自行搜索。
思考
- 为什么我们的习惯于把左边的数字的权重比右边的数字权重高?对于中国古代人来说,可能就不一样,所以我们需要另外一种对数据的存储/传播方式。
大端
- 低字节为权重高位
- 高字节为权重低位
- 符合人们的习惯。
可以考虑是从鸡蛋的大端开始,哪一端大,就表示哪一端权重高
.
- 很自然的,因为是从大端开始,当然权重低的在后面。
小端
这里首先将理解
可以考虑,地址从鸡蛋的小端开始,同样的,哪一端大就表示哪一端权重高
即:
- 低字节权重低
- 高字节权重高
- 符合古代人的阅读习惯,不符合现代人。
这些都是对于一个数据的判断。在一个单位数据有效。那么如何为一个单位数据?举个例子:一个32位的数,分为byte0,byte1,byte2,byte3.
若大端,那么,所见即所得。
若小端,那么就需要转换了。即Byte3->Byte0的顺序去读。
另外,通常与大、小端相关联的有LSB,MSB。也就是权重的意思。
LSB:最低有效位。//如果是十进制整数的话,就是个位。
MSB:最高有效位。//权重最大的位。
当然,有两种方式进行存储。
- LSB-->MSB
- MSB<--LSB
- 阅读方式不一样而已。