大端模式(big endian)和小端模式(little endian)指的是数据在计算机体系的存储模式,由于存在众多的芯片体系,如x86, power pc, arm等等,由于各个厂家对数据存储的规定不一样,故如果代码从一个系统移植到另一个系统时有可能遇到模式混乱的问题。
例如用一个字长表示1,Intel体系是采用小端模式的,存储为00000000,00000001,低字节放在低地址位;若体系采用的是大端模式,则存储为00000001,00000000,低字节放在高地址位。
了解这一点后,就不难用c语言通过对低字节的强制转换实现对大端小端的判断了。
unsigned int nTest = 0x11223344;
char *p = (char*)&nTest;
if(*p == 0x44)
printf("small mode");
else
printf("big mode");