==========================================
存储性:大小端(字节序)
小端字节序:低数据位存储在低字节(低地址)
大端字节序:高数据位存储在低字节
===========================================
//判断当前平台字节序为端还是小端 并实现大小端之间的转换函数
#include <stdio.h>
union val{
int ii;
char str[4];
};
int system_is_small(void);
int turn_val(int val);
int main(void)
{
int ret;
ret=system_is_small();
if(ret){
printf("小端系统\n");
}else{
printf("大端系统\n");
}
int val=0x12345678;
printf("val :%x\n",val);
ret=turn_val(val);
printf("turn val:%x\n",ret);
return 0;
}
int system_is_small(void)
{
#if 1
union val temp;
temp.ii=0x1;
return temp.str[0];
#else
int temp=0x1;
char *ptr;
ptr=(char *)&temp;
return ptr[0];
#endif //
}
int turn_val(int val)
{
char temp,*ptr=(char *)&val;
int i,count;
count=sizeof(val);
for(i=0;i<count/2;i++)
{
temp=ptr[i];
ptr[i]=ptr[count-1-i];
ptr[count-1-i]=temp;
}
return val;
}