首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

如何理解大端、小端存储器系统

2012-02-05 
怎么理解大端、小端存储器系统如题:我应该怎么理解大端、小端储存器系统[解决办法]压栈方式不同[解决办法]现

怎么理解大端、小端存储器系统
如题:我应该怎么理解大端、小端储存器系统

[解决办法]
压栈方式不同
[解决办法]
现行的计算机都是以八位一个字节为存储单位,那么一个32位的整数,也就是C语言中的int,在内存中可能有两种存储顺序big- endian和litte-endian.考虑一个int整数0x12345678(78是低字节,12是高字节),把它赋值给一个int变量,那么它在内存中的存储可能有如下两种情况:

大端格式(Big-endian):
在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如下图:
----------------->>>>>>>>内存地址增大方向
0x1000 0x1001 0x1002 0x1003 
____________________________________________
| | | | |
| 0x12 | 0x34 | 0x56 | 0x78 |
|__________| __________|___ _____|__________|
 
小端格式(little-endian):
与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节,如下图:
----------------->>>>>>>>内存地址增大方向
0x1000 0x1001 0x1002 0x1003 
______________________________________________
| | | | |
| 0x78 | 0x56 | 0x34 | 0x12 |
|___________| ___________|________|__________|
[解决办法]
不用汇编一般不会碰到大端小端问题,比如int x = 0x1234; 不管做哪个类型cpu上,c语言读到的结果都是0x1234,已经将大、小端透明化了。
[解决办法]
就是存储顺序不同,大端是低地址在高位上,小端是低地址地低位上

热点排行