简述
大端储存:高位存低地址、低位存高地址;小端存储:高位存高地址、低位存低地址
设计
分析:
从左到右为低地址到高地址
令a为0x00000001,如果是大端则最左边的位数表示的数是00;如果是小端则最左边的那个位数是01
初步代码:
#include<stdio.h>
int main()
{
int a=1;
char* p=(char*)&a;
if(*p==1)
{
printf("小端存储\n");
}
else
{
printf("大端存储\n");
}
return 0;
}
优化:
#include<stdio.h>
int check_sys()
{
int a=1;
char* p=(char*)&a;
if(*p==1)
return 1;
else
return 0;
}
int main()
{
//返回1:小端
//返回0:大端
int ret=check_sys();
if(ret==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
优化2:
#include<stdio.h>
int check_sys()
{
int a=1;
char* p=(char*)&a;
if(*p==1)
return *p;
//返回1:小端
//返回0:大端
}
int main()
{
//返回1:小端
//返回0:大端
int ret=check_sys();
if(ret==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
优化3:
#include<stdio.h>
int check_sys()
{
int a=1;
return *(char*)&a;
//返回1:小端
//返回0:大端
}
int main()
{
//返回1:小端
//返回0:大端
int ret=check_sys();
if(ret==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}