1.计算机中内存按字节编址。当存入数据长度大于一个字节时,存储方式分为大端和小端。大端:低地址存高位;小端:低地址存低位。
Intel x86使用little_endian, java虚拟机使用big_endian。
举例:0x1234
地址 0x00 0x01
小端 0x34 0x12
大端 0x12 0x34
2.判断计算机是大端还是小端的代码:
(1)
int islittleEndian()
{
union tag_bl
{
short int n;
char c;
} u_bl;
u_bl.n = 0x01;
if(u_bl.c)
{
printf("is little endian/n");
return 1;
}
else
{
printf("is big endian/n");
return 0;
}
}
(2)
int isbigEndian()
{
short int n = 0x01;
char *p = (char*)&n;
if(*p)
return 0;
else
return 1;
}