大端存储 小端存储

    技术2022-05-12  6

    大端存储 小端存储

    Big-Endian 和 Little-Endian 字节排序 字节排序 含义 Big-Endian 一个Word中的高位的Byte放在内存中这个Word区域的低地址处。 Little-Endian 一个Word中的低位的Byte放在内存中这个Word区域的低地址处。

    实则,本质上是一种按地址增长的方向与存储数据的方向的一种约定;

    对小端存储,按地址从低到高的方向,一个完整的数据,先存储低位,后存储高位。

    简单的可以这么理解,以字节为最小单元,当存储的数据类型的长度大于一个字节时,该类型数据的每个单元在内存中的存放形式就要用规则来存放了,这个规则就是Big-E或者Little-E。

    比如:一个char字符串,用16进制表示为:0x1234abcd,那么它在内存中的存放形式是:12 34 ab cd (其中,每位16进制表示4位二进制,那么二位16进制表示一个字节。12,34,ab,cd,分别是一个字节。因为char字符串的类型为字节,所以直接存放)。

    比如:一个LONG型数据,用16进制表示为:0x1234abcd,那么它在内存中的存放形式是:cd,ab,34,12。要记着,当存储的数据类型的长度大于一个字节的时,才需要用规则来存放的。

    抽象一点,概括为:当存储数据的数据类型的长度大于一个字节的长度时,该数据类型的每个逻辑单元在内存中的存放都必须用大端或小端来存放。

    比如:两个WORD类型的数据连续存放在内存中,假设这两个WORD类型的值是:0x1234,0xabcd,那么它们在文件中是这样存放的0x1234abcd, 在内存中,存放形式是:34,12,cd,ab。因为存储数据的类型是WORD,而WORD类型的长度是2个字节,所有按照小端存储就是如此了

     

    转自http://apps.hi.baidu.com/share/detail/20405850


    最新回复(0)