大小端:
数据在存储器中存放顺序的顺序。
分度值,byte,即byte组装成的int时byte的顺序则不同。
大端:低地址存放在高存储器地址,高字节存放在低存储器地址
小端:高字节存放在高存储器地址,低地址存放在低存储器地址
举例说明大端小端:
假设变量x的类型为int,位于地址0x100处,它的十六进制值为0x01234567.地址范围0x100-0x103的字节顺序依赖于机器的类型。
取地址的时候都是取首地址的,读取的时候也是从首地址开始读的。
方法1
//联合体判断大端存放,小端存放
union UNData1
{
short at;
char cs[2];
};
int main()
{
union UNData1 x1;
x1.at=0x0001;//cs[0]==0x01;cs[1]=0x00;
if(x1.cs[0]==1)
{
printf("小端存放\n");
}
else
{
printf("大端存放\n");
}
return 0;
}
方法2:
//强转判断大端小端
int main()
{
short x = 0x0001;
char *p = (char*)&x;
if(*p == 1)
{
printf("小端存放\n");
}
else
{
printf("大端存放\n");
}
return 0;
}