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; }