字节序

字节序,很常见的说法是:大端,小端,在这里简单的介绍一下字节序。

  • 对于现代人的阅读习惯来说,都是从左向右的,那么在这里规定,低字节在左,高字节在右。即:字节的地址增加也就是我们的阅读方向

权重

  • 越有权的话,越有力。在数字上的体现,即位权重。对于十进制来说,数字位越靠左边,表明该位权重也就越大。

Byte

  • 对于一个Byte的数据来说,有专门的定义,我们可以将一个Byte看做为一个数字的权重位,即十六进制中的一个位。

大、小端典故

  • 该典故起源于鸡蛋,具体的细节请自行搜索。

思考

  • 为什么我们的习惯于把左边的数字的权重比右边的数字权重高?对于中国古代人来说,可能就不一样,所以我们需要另外一种对数据的存储/传播方式。

大端

  • 低字节为权重高位
  • 高字节为权重低位
  • 符合人们的习惯。

可以考虑是从鸡蛋的大端开始,哪一端大,就表示哪一端权重高.

  • 很自然的,因为是从大端开始,当然权重低的在后面。

小端

这里首先将理解
可以考虑,地址从鸡蛋的小端开始,同样的,哪一端大就表示哪一端权重高
即:

  • 低字节权重低
  • 高字节权重高
  • 符合古代人的阅读习惯,不符合现代人。

这些都是对于一个数据的判断。在一个单位数据有效。那么如何为一个单位数据?举个例子:一个32位的数,分为byte0,byte1,byte2,byte3.

大端,那么,所见即所得。
小端,那么就需要转换了。即Byte3->Byte0的顺序去读。

另外,通常与大、小端相关联的有LSB,MSB。也就是权重的意思。
LSB:最低有效位。//如果是十进制整数的话,就是个位。
MSB:最高有效位。//权重最大的位。

当然,有两种方式进行存储。

  1. LSB-->MSB
  2. MSB<--LSB
  • 阅读方式不一样而已。

转换

原文地址:https://www.cnblogs.com/ply616/p/5461478.html