大端存储和小端存储
大端(存储)模式:指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;
小端(存储)模式:指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中;
例如:设一个int型数据用16进制表示为0x11 22 33 44(从低位到高位排列为 44 33 22 11),内存地址从左到右依次增加,则大端存储模式为:11 22 33 44,小端存储模式为:44 33 22 11。
以下通过设计一个程序来判断当前计算机采用的是大端存储模式还是小端存储模式。
//返回1则是小端存储,返回0则是大端存储
int check_sys()
{
int a=1;
//通过强制转换获得int型数据的第一个字节的值
return *(char*)&a; //解引用后值为一个char型,被强制转换成int型
}
int main()
{
int ret=check_sys();
if(ret==1)
{
printf("小端\n");
}
eles
{
printf("大端\n");
}
return 0;
}