- 系统的存储模式有两种:大端模式,和小端模式
大端模式:(Big_endian):字数据的高字节存储在低地址,低字节存储在高地址
小端模式:(Little_endian):字数据高字节存储在高地址,低字节存储在低地址
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//小端转大端模式
#define BIG_LITTLE(a) (((a&0xff) <<24 )| \
((a &0xff00) <<8) | ((a&0xff0000)>>8 )|\
((a&0xff000000)>>24))
//验证当前系统是大端还是小端模式
int is_litter_endian(int data)
{
char *ptr=(char*)&data;
if(*ptr==1)
return 1;
return 0;
}
int main(int argc,const char* argv[])
{
int a=0x12345678;
printf("Little_endian a = 0x%x\n",a);
printf("Gig_endian a = 0x%x\n",BIG_LITTLE(a));
int result=is_litter_endian(1);
if(result)
{
printf("litter endian\n");
}
else
{
printf("big endian\n");
}
return 0;
}
运行结果:
经过上机测试得出结论:32位系统默认为小端模式