【OS】关于堆、栈生长方向和大小端模式

###Date: 2018-1-30

###Author: SoaringLee

=======================================================================

堆是向上生长的,即从低地址到高地址;栈是向下生长的,即从高地址到低地址。


不同的系统在存储数据时是分大端(bit-endian)小端(little-endian)存储的,比如,Inter x86、ARM核采用的是小端模式,Power PC、MIPS UNIX和HP-PA UNIX采用大端模式。


小端模式是:低地址上存放低字节,高地址上存放高字节。

大端模式是:低地址上存放高字节,高地址上存放低字节,又称网络字节序。


大小端的判别:

/* 
 * 1: little-endian 
 * 0: big-endian 
 */  
int checkEndian()  
{  
    int a = 1;  
    char *p = (char *)&a;  
  
    return (*p == 1);  
}  

1: 0x00000001

小端读取顺序:01--》00--》00--》00  *p=1(低地址)

大端读取顺序:00--》00--》00--》01  *p=0(低地址)



posted @ 2018-01-30 19:49  SoaringLee_fighting  阅读(328)  评论(0编辑  收藏  举报