我們知道關於字節序有大端和小端之分。一般來說,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;
}