大端存储与小端存储理解

 

一.理解大端存储和小端存储的概念

1).大端存储:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。

2).小端存储:小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。

为简单起见,本文使用OP0表示一个32位数据的最高字节MSB(Most Significant Byte),使用OP3表示一个32位数据最低字节LSB(Least Significant Byte)。  

小端:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。
大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。


 

代码测试

 1 #include <stdio.h>
 2 
 3 void BigLittleEndian()
 4 {
 5    int i  = 1;
 6    char *p = (char *)(&i);
 7    if( *p == 1)
 8     printf("LittleEndian");
 9    else
10     printf("BigEndian");
11 }
12 
13 void main()
14 {
15     BigLittleEndian();
16 }

 

posted @ 2018-03-10 15:15  wood2012  阅读(26291)  评论(3编辑  收藏  举报