大端字節序和小端字節序之分

      我們知道關於字節序有大端和小端之分。一般來說,Inter的處理器使用的是小端(little Indian),Moto的處理器使用的是大端。大端和小端的區別在於,內存對於變量的存放規則不同。小端存儲模式是低位放在低地址,高位存放在高地址。而大端則相反。

     簡單示例如下:

          a=0x11223344;

                            低                                                             高

     地址由低到高————————————————————>

      小端字節序      44     33    22     11

      大端字節序      11     22    33     44


 那麼爲了判斷存儲方式屬於大端還是小端存儲,我們給出如下代碼:

#include<stdio.h>

#include<stdlib.h>


int check_sys()

{

int a = 0x11223344;

char *p = (char *)&a;

if (*p == 0x11)

{

return 1;

}

if (*p == 0x44)

{

return 2;

}

}

int main()

{

int ret = check_sys();

if (ret == 1)

printf("Big\n");

if (ret == 2)

printf("little\n");

system("pause");

return 0;

}

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章