#include <stdio.h>
bool issmall();
int main()
{
if (issmall())
{
printf("Little \n");
}
else
{
printf("Big\n");
}
262 657的二进制是
0000 0000 0000 0100 0000 0010 0000 0001
如果是Intel PC(Little-endian),这个数字将存储为
字节地址:00 01 02 03
0000 0001 0000 0010 0000 01000000 0000
如果是Motorola处理机的Mac机,在内存中摆放如下:
字节地址:00 01 02 03
0000 0000 0000 0100 0000 00100000 0001
//上面的判断测试出你的机子的类型
//下面的代码是对大小端的理解及运用
int a[5]={1,2,3,4,5};
int *p1=(int *)(&a+1);
int *p2=(int *)((int)a+1);
printf("%x %x\n",p1[-1],*p2);
return 0;
}
bool issmall()
{
union{
int j;
char c;
}temp;
temp.j=1;
if (1==temp.c)
{
return true;
}
else
return false;
}