|
现行的计算机都是以八位一个字节为存储单位,那么一个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 |
|___________| ___________|________|__________| |
|