大端存储(大端字节序存储)
把一个数字的低位字节序存放在高地址处,把高位字节序内容存储在低地址处。
小端存储(小端字节序存储)
把一个数字的高位字节序存放在高地址处,把低位字节序内容存储在低地址处。
eg:
44 33 22 11就是小端存储
11 22 33 44就是大端存储
判断当前机器的存储方式是大端还是小端?
int check()
{
int a = 1;
return *(char*)&a;
//if (*(char*)&a == 1)//char * 取出第一个字节
// return 1;//小端,因为a为0x00000001,低位1放在低地址,为小端字节序存储
//else
// return 0;//大端
}
联合判断大小端
int check()
{
union Un
{
int i;
char c;
}un;
un.i=1;
return un.c;
}
int main()
{
if (check()==1)
{
printf("小端”);
}//联合是共用体,如果返回1,则说明高位存在低位,是小端存储。
else
{
printf("大端”);
}
}